/** * Shows or hides the text for the currently selected figure. * * @param show Pass <code>true</code> to show the text, <code>false</code> otherwise. * @param figure The selected figure. */ void showText(boolean show, ROIFigure figure) { if (fieldTable == null) return; int n = fieldTable.getRowCount(); if (n > 4) { FigureTableModel ftm = (FigureTableModel) fieldTable.getModel(); ROIFigure f = ftm.getFigure(); if (f != null && f == figure) fieldTable.getModel().setValueAt(show, getRowIndex(MeasurementAttributes.SHOWTEXT), 1); } }
/** * Returns <code>true</code> if the text has to be shown, <code>false</code> otherwise. * * @return See above. */ boolean isShowText() { if (fieldTable == null) return false; int n = fieldTable.getRowCount(); if (n > 4) { Object v = fieldTable.getModel().getValueAt(getRowIndex(MeasurementAttributes.SHOWTEXT), 1); if (v == null) return false; return (Boolean) v; } return false; }
/** Toggles the value of the boolean under the current selection. */ private void toggleValue() { int col = fieldTable.getSelectedColumn(); int row = fieldTable.getSelectedRow(); Object v = (Boolean) fieldTable.getModel().getValueAt(row, col); Boolean value = Boolean.valueOf(false); if (v != null) value = (Boolean) v; boolean newValue = !(value.booleanValue()); fieldTable.getModel().setValueAt(Boolean.valueOf(newValue), row, col); model.getDrawingView().repaint(); }
/** * Removes the ROI figures. * * @param figures The figures to remove. */ void removeROIFigures(List<ROIFigure> figures) { if (figures == null || figures.size() == 0) return; FigureTableModel tm = (FigureTableModel) fieldTable.getModel(); ROIFigure value = tm.getFigure(); if (value == null) return; Iterator<ROIFigure> i = figures.iterator(); ROIFigure figure; while (i.hasNext()) { figure = i.next(); if (value.getROI().getID() == figure.getROI().getID()) tm.clearData(); } fieldTable.repaint(); }
/** * Returns <code>true</code> if the figure dimensions are to be scaled proportionally, <code>false * </code> otherwise. * * @return See above. */ boolean isScaleProportionally() { if (fieldTable == null) return false; int n = fieldTable.getRowCount(); if (n > 1) { Object v = fieldTable .getModel() .getValueAt(getRowIndex(MeasurementAttributes.SCALE_PROPORTIONALLY), 1); if (v == null) return false; return (Boolean) v; } return false; }
/** * Removes the ROI figure. * * @param figure The figure to remove. */ void removeROIFigure(ROIFigure figure) { if (figure == null) return; FigureTableModel tm = (FigureTableModel) fieldTable.getModel(); ROIFigure value = tm.getFigure(); if (value == null) return; if (value.getROI().getID() == figure.getROI().getID()) tm.clearData(); }
/** * Sets the new figure retrieved from the passed collection. * * @param l The collection to handle. */ void setSelectedFigures(List<ROIShape> l) { FigureTableModel tableModel = (FigureTableModel) fieldTable.getModel(); Iterator<ROIShape> i = l.iterator(); // Register error and notify user. ROIShape shape; try { TableCellEditor editor = fieldTable.getCellEditor(); if (editor != null) editor.stopCellEditing(); while (i.hasNext()) { shape = i.next(); tableModel.setData(shape.getFigure()); fieldTable.repaint(); } } catch (Exception e) { MeasurementAgent.getRegistry().getLogger().info(this, "Figures selection" + e); } }
private void handleValueChanged(String text) { int row = fieldTable.getEditingRow(); if (row < 0 || row >= attributeFields.size()) { return; } AttributeKey attr = getAttributeKey(row); FigureTableModel ftm = (FigureTableModel) fieldTable.getModel(); ROIFigure figure = ftm.getFigure(); if (attr.equals(MeasurementAttributes.TEXT)) { if (TextHolderFigure.class.isAssignableFrom(figure.getClass())) { ((TextHolderFigure) figure).setText(text); } } else if (attr.equals(MeasurementAttributes.FONT_SIZE)) { double d = parseDouble(text); figure.setAttribute(MeasurementAttributes.FONT_SIZE, d); figure.changed(); } else if (attr.equals(MeasurementAttributes.STROKE_WIDTH)) { double d = parseDouble(text); figure.setAttribute(MeasurementAttributes.STROKE_WIDTH, d); } else if (attr.equals(MeasurementAttributes.WIDTH)) { try { double d = parseDouble(text); setFigureDimension(figure, MeasurementAttributes.WIDTH, d); if (isScaleProportionally()) { setFigureDimension(figure, MeasurementAttributes.HEIGHT, d); } } catch (Exception e) { } } else if (attr.equals(MeasurementAttributes.HEIGHT)) { try { double d = parseDouble(text); setFigureDimension(figure, MeasurementAttributes.HEIGHT, d); if (isScaleProportionally()) { setFigureDimension(figure, MeasurementAttributes.WIDTH, d); } } catch (Exception e) { } } model.getDrawingView().repaint(); }
/** Initializes the component composing the display. */ private void initComponents() { infoLabel = new JLabel(MAGNIFICATION + " is " + model.getDrawingView().getScaleFactor()); // create the table fieldTable = new FigureTable(new FigureTableModel(attributeFields, COLUMN_NAMES)); fieldTable.getTableHeader().setReorderingAllowed(false); fieldTable.setRowHeight(26); fieldTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); fieldTable.setCellSelectionEnabled(true); fieldTable.setColumnSelectionAllowed(true); fieldTable.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent e) { int col = fieldTable.getSelectedColumn(); int row = fieldTable.getSelectedRow(); Object value = fieldTable.getValueAt(row, col); if (e.getClickCount() == 1) { if (value instanceof Boolean) { toggleValue(); } } else if (e.getClickCount() > 1) { e.consume(); if (value instanceof Color) { // Only if the figure is not read only. FigureTableModel ftm = (FigureTableModel) fieldTable.getModel(); ROIFigure figure = ftm.getFigure(); if (figure != null && !figure.isReadOnly()) if (figure.canEdit()) controller.showColorPicker((Color) value); } else if (value instanceof Boolean) { toggleValue(); } } } }); fieldTable.addPropertyChangeListener( new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { String name = evt.getPropertyName(); if (FigureTable.VALUE_CHANGED_PROPERTY.equals(name)) { handleValueChanged((String) evt.getNewValue()); } } }); }
/** Clear the inspector after saving the data. */ void clearData() { FigureTableModel tm = (FigureTableModel) fieldTable.getModel(); tm.clearData(); }
/** * Sets the data. * * @param figure The data to set. */ void setModelData(ROIFigure figure) { FigureTableModel tableModel = (FigureTableModel) fieldTable.getModel(); tableModel.setData(figure); fieldTable.repaint(); }
/** * Sets the passed color to the currently selected cell. Returns the selected row. * * @param c The color to set. */ int setCellColor(Color c) { int col = fieldTable.getSelectedColumn(); int row = fieldTable.getSelectedRow(); fieldTable.getModel().setValueAt(c, row, col); return row; }