protected void initializeTableModel() { tableModel = new ObjectTableModel(new String[] { JMeterUtils.getResString(LABEL_LIBRARY) }, new Functor[0] , new Functor[0] , // i.e. bypass the Functors new Class[] { String.class }); }
/** * We use this method to get the data, since we are using * ObjectTableModel, so the calling getDataVector doesn't * work as expected. * * @param model {@link ObjectTableModel} * @param formats Array of {@link Format} array can contain null formatters in this case value is added as is * @return the data from the model */ public static List<List<Object>> getAllTableData(ObjectTableModel model, Format[] formats) { List<List<Object>> data = new ArrayList<List<Object>>(); if (model.getRowCount() > 0) { for (int rw = 0; rw < model.getRowCount(); rw++) { int cols = model.getColumnCount(); List<Object> column = new ArrayList<Object>(); data.add(column); for (int idx = 0; idx < cols; idx++) { Object val = model.getValueAt(rw, idx); if (formats[idx] != null) { column.add(formats[idx].format(val)); } else { column.add(val); } } } } return data; }
public String[] getFiles() { String[] _files = new String[tableModel.getRowCount()]; for (int idx=0; idx < _files.length; idx++) { _files[idx] = (String)tableModel.getValueAt(idx,0); } return _files; }
protected void deleteFile() { // If a table cell is being edited, we must cancel the editing before // deleting the row int rowSelected = files.getSelectedRow(); if (rowSelected >= 0) { tableModel.removeRow(rowSelected); tableModel.fireTableDataChanged(); } }
@Override public void run() { if (isSampleIncluded(res)) { SamplingStatCalculator row = null; final String sampleLabel = res.getSampleLabel(useGroupName.isSelected()); synchronized (lock) { row = tableRows.get(sampleLabel); if (row == null) { row = new SamplingStatCalculator(sampleLabel); tableRows.put(row.getLabel(), row); model.insertRow(row, model.getRowCount() - 1); } } /* * Synch is needed because multiple threads can update the * counts. */ synchronized (row) { row.addSample(res); } SamplingStatCalculator tot = tableRows.get(TOTAL_ROW_LABEL); synchronized (tot) { tot.addSample(res); } model.fireTableDataChanged(); } } });
/** * Add a new argument row to the table. */ private void addArgument() { // If a table cell is being edited, we should accept the current value // and stop the editing before adding a new row. GuiUtils.stopTableEditing(table); tableModel.addRow(makeNewLDAPArgument()); // Enable DELETE (which may already be enabled, but it won't hurt) delete.setEnabled(true); // Highlight (select) the appropriate row. int rowToSelect = tableModel.getRowCount() - 1; table.setRowSelectionInterval(rowToSelect, rowToSelect); }
public SummaryReport() { super(); model = new ObjectTableModel(COLUMNS, Calculator.class,// All rows have this class new Functor[] { synchronized (lock) { while (!newRows.isEmpty()) { model.insertRow(newRows.pop(), model.getRowCount() - 1); model.fireTableDataChanged();
@Override public int getModelRowCount() { return model.getRowCount(); }
/** * * @param row */ public void addRow(AbstractGraphRow row) { ((ObjectTableModel) dataModel).addRow(row); }
/** * clear the files from the table */ public void clearFiles() { tableModel.clearData(); }
@Override public void actionPerformed(ActionEvent e) { try { String clipboardContent = GuiUtils.getPastedText(); if(clipboardContent == null) { return; } String[] clipboardLines = clipboardContent.split("\n"); // $NON-NLS-1$ for (String clipboardLine : clipboardLines) { String[] columns = clipboardLine.split("\t"); // $NON-NLS-1$ model.addRow(clazz.newInstance()); for (int i=0; i < columns.length; i++) { model.setValueAt(columns[i], model.getRowCount() - 1, i); } } if(model.getRowCount()>1) { upButton.setEnabled(true); downButton.setEnabled(true); } else { upButton.setEnabled(false); downButton.setEnabled(false); } } catch (Exception err) { log.error("The class type given to TableEditor was not instantiable.", err); } } }
/** * Remove the currently selected argument from the table. */ private void deleteArgument() { // If a table cell is being edited, we must cancel the editing before // deleting the row GuiUtils.cancelEditing(table); int rowSelected = table.getSelectedRow(); if (rowSelected >= 0) { tableModel.removeRow(rowSelected); tableModel.fireTableDataChanged(); // Disable DELETE if there are no rows in the table to delete. if (tableModel.getRowCount() == 0) { delete.setEnabled(false); } // Table still contains one or more rows, so highlight (select) // the appropriate one. else { int rowToSelect = rowSelected; if (rowSelected >= tableModel.getRowCount()) { rowToSelect = rowSelected - 1; } table.setRowSelectionInterval(rowToSelect, rowToSelect); } } }
@Override public void setValue(Object value) { if(value != null) { model.setRows(convertCollection((Collection<?>)value)); } else { model.clearData(); } if(model.getRowCount()>0) { removeButton.setEnabled(true); clearButton.setEnabled(true); } else { removeButton.setEnabled(false); clearButton.setEnabled(false); } if(model.getRowCount()>1) { upButton.setEnabled(true); downButton.setEnabled(true); } else { upButton.setEnabled(false); downButton.setEnabled(false); } this.firePropertyChange(); }
public double[][] getData() { if (model.getRowCount() > 1) { int count = model.getRowCount() -1; int size = nbColToGraph; double[][] data = new double[size][count]; int s = 0; int cpt = 0; for (BarGraph bar : eltList) { if (bar.getChkBox().isSelected()) { int col = model.findColumn(columnsList.getItemAt(cpt)); for (int idx=0; idx < count; idx++) { data[s][idx] = ((Number)model.getValueAt(idx,col)).doubleValue(); } s++; } cpt++; } return data; } // API expects null, not empty array return null; }
void initializeModel() { Object hdrs = descriptor.getValue(HEADERS); if (!(hdrs instanceof String[])) { throw new RuntimeException("attribute HEADERS must be a String array"); } if (clazz == String.class) { model = new ObjectTableModel((String[]) hdrs, new Functor[0], new Functor[0], new Class[]{String.class}); } else { Object value = descriptor.getValue(OBJECT_PROPERTIES); if (!(value instanceof String[])) { throw new RuntimeException("attribute OBJECT_PROPERTIES must be a String array"); } List<String> props = Arrays.stream((String[]) value) .map(StringUtils::capitalize) .collect(Collectors.toList()); Functor[] writers = createWriters(props); Functor[] readers = createReaders(clazz, props); Class<?>[] editors = getArgsForWriter(clazz, props); model = new ObjectTableModel((String[]) hdrs, readers, writers, editors); } model.addTableModelListener(this); table = new JTable(model); JMeterUtils.applyHiDPI(table); table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); table.addFocusListener(this); }
/** * Runs specified command on currently selected file. * * @param command specifies which process will be done on selected * file. it's coming from action command currently caught by * action listener. */ private void runCommandOnSelectedFile(String command) { // If a table cell is being edited, we must cancel the editing before // deleting the row GuiUtils.cancelEditing(table); int rowSelected = table.getSelectedRow(); if (rowSelected >= 0) { runCommandOnRow(command, rowSelected); tableModel.fireTableDataChanged(); // Disable DELETE and BROWSE if there are no rows in the table to delete. checkDeleteAndBrowseStatus(); // Table still contains one or more rows, so highlight (select) // the appropriate one. if (tableModel.getRowCount() != 0) { int rowToSelect = rowSelected; if (rowSelected >= tableModel.getRowCount()) { rowToSelect = rowSelected - 1; } table.setRowSelectionInterval(rowToSelect, rowToSelect); } } }
@Override public void actionPerformed(ActionEvent e) { int[] rows = table.getSelectedRows(); for(int i=0; i<rows.length; i++){ model.removeRow(rows[i]-i); } if(model.getRowCount()>1) { upButton.setEnabled(true); downButton.setEnabled(true); } else { upButton.setEnabled(false); downButton.setEnabled(false); } } }
@Override public void add(SampleResult res) { if (!isSampleIncluded(res)) { return; } SamplingStatCalculator row; final String sampleLabel = res.getSampleLabel(useGroupName.isSelected()); synchronized (tableRows) { row = tableRows.get(sampleLabel); if (row == null) { row = new SamplingStatCalculator(sampleLabel); tableRows.put(row.getLabel(), row); statModel.insertRow(row, statModel.getRowCount() - 1); } } /* * Synch is needed because multiple threads can update the counts. */ synchronized (row) { row.addSample(res); } SamplingStatCalculator tot = tableRows.get(TOTAL_ROW_LABEL); synchronized (tot) { tot.addSample(res); } //statModel.fireTableDataChanged(); }
/** * Save the GUI data in the HTTPSamplerBase element. * * @param testElement {@link TestElement} to modify */ public void modifyTestElement(TestElement testElement) { GuiUtils.stopTableEditing(table); if (testElement instanceof HTTPSamplerBase) { HTTPSamplerBase base = (HTTPSamplerBase) testElement; int rows = tableModel.getRowCount(); @SuppressWarnings("unchecked") // we only put HTTPFileArgs in it Iterator<HTTPFileArg> modelData = (Iterator<HTTPFileArg>) tableModel.iterator(); HTTPFileArg[] files = new HTTPFileArg[rows]; int row = 0; while (modelData.hasNext()) { HTTPFileArg file = modelData.next(); files[row++] = file; } base.setHTTPFiles(files); } }