Пример #1
0
QVariant ResultList::data(const QModelIndex& index, int role) const
{
	if (!index.isValid())
		return QVariant();
	if (role != Qt::DisplayRole && role != Qt::EditRole)
		return QVariant();
	
	QVariant* item = getItem(index);
	if (!item)
		return QVariant();
	
	ColumnType type = columnTypes[index.column()];
	return getItemString(type, item);
}
void TabbedTableItem::createDataModel()
{
 if (manager!=nullptr)
  tableAction->setManager(manager);
 dataModel = (BeanTableDataModel*)tableAction->getTableDataModel();
 //        dataModel->updateNameList();
//        TableSorter sorter = new TableSorter(dataModel);
 MySortFilterProxyModel* sorter = new MySortFilterProxyModel();
 sorter->setSourceModel(dataModel);
 dataTable = dataModel->makeJTable(dataModel->getMasterClassName() + ":" + getItemString(), dataModel, sorter);

 tableAction->table = dataTable;
 //sorter->setSourceModel(dataModel);
 dataTable->setSortingEnabled(true);
 //sorter.setTableHeader(dataTable.getTableHeader());
 //dataScroll	= new JScrollPane(dataTable);

//        try {
//            TableSorter tmodel = ((TableSorter)dataTable.getModel());
//            tmodel.setColumnComparator(String.class, new jmri.util.SystemNameComparator());
//            tmodel.setSortingStatus(BeanTableDataModel.SYSNAMECOL, TableSorter.ASCENDING);
//        } catch (java.lang.ClassCastException e) {}  // happens if not sortable table

 dataModel->configureTable(dataTable);
 dataModel->loadTableColumnDetails(dataTable, dataModel->getMasterClassName()+":"+getItemString());
 //dataModel->setPersistentButtons();


 QSize dataTableSize = dataTable->sizeHint();
 // width is right, but if table is empty, it's not high
 // enough to reserve much space.
 dataTableSize.setHeight(qMax(dataTableSize.height(), 400));
 //dataScroll.getViewport().setPreferredSize(dataTableSize);

 // set preferred scrolling options
 // dataScroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
 //dataScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

 //dataPanel.setLayout(new BoxLayout(dataPanel, BoxLayout.Y_AXIS));
 dataPanel->resize(600,290);
 //QGridLayout* dataPanelLayout;
// if(dataPanel->layout() != NULL)
//  dataPanelLayout = (QGridLayout*)dataPanel->layout();
// else
  //dataPanel->setLayout(dataPanelLayout= new QGridLayout);
 //dataPanel.add(dataScroll, BorderLayout.CENTER);
 dataPanelLayout->addWidget(dataTable,0,0); //, 0, Qt::AlignCenter);

 dataPanelLayout->addWidget(bottomBox,1,0); //, /*BorderLayout.SOUTH*/0, Qt::AlignBottom);
 if(tableAction->includeAddButton())
 {
  QPushButton* addButton = new QPushButton(tr("Add"));
  addToBottomBox(addButton);
//            addButton.addActionListener(new ActionListener() {
//                /*public*/ void actionPerformed(ActionEvent e) {
//                    tableAction.addPressed(e);
//                }
//            });
  QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
  sizePolicy.setHorizontalStretch(0);
  sizePolicy.setVerticalStretch(0);
  sizePolicy.setHeightForWidth(addButton->sizePolicy().hasHeightForWidth());
  addButton->setSizePolicy(sizePolicy);
  connect(addButton, SIGNAL(clicked()), tableAction, SLOT(addPressed()));
 }
}