Search in sources :

Example 1 with ColorIcon

use of org.vcell.util.gui.ColorIcon in project vcell by virtualcell.

the class StructureMappingTableRenderer method getTableCellRendererComponent.

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
    setIcon(null);
    if (table.getModel() instanceof StructureMappingTableModel) {
        StructureMappingTableModel structureMappingTableModel = (StructureMappingTableModel) table.getModel();
        String toolTip = structureMappingTableModel.getToolTip(row, column);
        if (value instanceof Structure) {
            Structure structure = (Structure) value;
            setText(structure.getName());
        } else if (value instanceof Double && structureMappingTableModel.isNewSizeColumn(column)) {
            StructureMapping structureMapping = structureMappingTableModel.getStructureMapping(row);
            if (structureMappingTableModel.isNonSpatial()) {
                VCUnitDefinition unitDefinition = structureMapping.getStructure().getStructureSize().getUnitDefinition();
                TextIcon sizeIcon = unitIconHash.get(unitDefinition.getSymbol());
                if (sizeIcon == null) {
                    sizeIcon = new TextIcon("[ " + unitDefinition.getSymbolUnicode() + " ]");
                    unitIconHash.put(unitDefinition.getSymbol(), sizeIcon);
                }
                setIcon(sizeIcon);
            } else {
                // spatial
                if (structureMapping.getUnitSizeParameter() != null) {
                    VCUnitDefinition unitDefinition = structureMapping.getUnitSizeParameter().getUnitDefinition();
                    TextIcon sizeIcon = unitIconHash.get(unitDefinition.getSymbol());
                    if (sizeIcon == null) {
                        sizeIcon = new TextIcon("[ " + unitDefinition.getSymbolUnicode() + " ]");
                        unitIconHash.put(unitDefinition.getSymbol(), sizeIcon);
                    }
                    setIcon(sizeIcon);
                }
            }
        }
        if (structureMappingTableModel.isSubdomainColumn(column)) {
            // can be null
            if (value == null) {
                setText("Unmapped");
                setForeground(Color.red);
                setIcon(null);
            } else {
                if (value instanceof GeometryClass) {
                    setText(((GeometryClass) value).getName());
                    if (value instanceof SubVolume) {
                        SubVolume subVolume = (SubVolume) value;
                        java.awt.Color handleColor = new java.awt.Color(colormap[subVolume.getHandle()]);
                        // small square icon with subdomain color
                        Icon icon = new ColorIcon(10, 10, handleColor, true);
                        setHorizontalTextPosition(SwingConstants.RIGHT);
                        setIcon(icon);
                    } else if (value instanceof SurfaceClass) {
                        SurfaceClass sc = (SurfaceClass) value;
                        Set<SubVolume> sv = sc.getAdjacentSubvolumes();
                        Iterator<SubVolume> iterator = sv.iterator();
                        SubVolume sv1 = iterator.next();
                        SubVolume sv2 = iterator.next();
                        java.awt.Color c1 = new java.awt.Color(colormap[sv2.getHandle()]);
                        java.awt.Color c2 = new java.awt.Color(colormap[sv1.getHandle()]);
                        Icon icon = new ColorIconEx(10, 10, c1, c2);
                        setIcon(icon);
                        setHorizontalTextPosition(SwingConstants.RIGHT);
                    }
                } else {
                    setText(value.toString());
                    setIcon(null);
                }
            }
        }
        if (value instanceof BoundaryConditionType) {
            // we get here only for spatial
            Object candidate = structureMappingTableModel.getValueAt(row, StructureMappingTableModel.SPATIAL_COLUMN_SUBDOMAIN);
            if (candidate instanceof SurfaceClass) {
                SurfaceClass surfaceClass = (SurfaceClass) candidate;
                cbit.vcell.model.Model model = structureMappingTableModel.getGeometryContext().getModel();
                SimulationContext simContext = structureMappingTableModel.getGeometryContext().getSimulationContext();
                Pair<SubVolume, SubVolume> ret = DiffEquMathMapping.computeBoundaryConditionSource(model, simContext, surfaceClass);
                SubVolume innerSubVolume = ret.one;
                java.awt.Color handleColor = new java.awt.Color(colormap[innerSubVolume.getHandle()]);
                // small square icon with subdomain color
                Icon icon = new ColorIcon(8, 8, handleColor, true);
                setHorizontalTextPosition(SwingConstants.LEFT);
                setIcon(icon);
                setText("from");
                // override default tooltip
                toolTip = "Boundary condition inherited from Subdomain '" + innerSubVolume.getName() + "'";
                setToolTipText(toolTip);
            } else {
                setText(((BoundaryConditionType) value).boundaryTypeStringValue());
            }
        }
        List<Issue> issueList = structureMappingTableModel.getIssues(row, column, Issue.SEVERITY_ERROR);
        if (issueList.size() > 0) {
            // override default tooltip
            setToolTipText(Issue.getHtmlIssueMessage(issueList));
            if (column == 0) {
                setBorder(new MatteBorder(1, 1, 1, 0, Color.red));
            } else if (column == table.getColumnCount() - 1) {
                setBorder(new MatteBorder(1, 0, 1, 1, Color.red));
            } else {
                setBorder(new MatteBorder(1, 0, 1, 0, Color.red));
            }
        } else {
            setToolTipText(toolTip);
            setBorder(DEFAULT_GAP);
        }
    }
    return this;
}
Also used : Color(java.awt.Color) GeometryClass(cbit.vcell.geometry.GeometryClass) Set(java.util.Set) Issue(org.vcell.util.Issue) SurfaceClass(cbit.vcell.geometry.SurfaceClass) BoundaryConditionType(cbit.vcell.math.BoundaryConditionType) AttributedString(java.text.AttributedString) StructureMapping(cbit.vcell.mapping.StructureMapping) MatteBorder(javax.swing.border.MatteBorder) SubVolume(cbit.vcell.geometry.SubVolume) Iterator(java.util.Iterator) Structure(cbit.vcell.model.Structure) ColorIconEx(org.vcell.util.gui.ColorIconEx) ColorIcon(org.vcell.util.gui.ColorIcon) Color(java.awt.Color) SimulationContext(cbit.vcell.mapping.SimulationContext) VCUnitDefinition(cbit.vcell.units.VCUnitDefinition) ColorIcon(org.vcell.util.gui.ColorIcon) Icon(javax.swing.Icon)

Example 2 with ColorIcon

use of org.vcell.util.gui.ColorIcon in project vcell by virtualcell.

the class GeometrySubVolumeTableCellRenderer method getTableCellRendererComponent.

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
    if (value instanceof SubVolume) {
        SubVolume subVolume = (SubVolume) value;
        java.awt.Color handleColor = new java.awt.Color(colormap[subVolume.getHandle()]);
        setIcon(new ColorIcon(15, 15, handleColor));
        setText(subVolume.getName());
    }
    return this;
}
Also used : ColorIcon(org.vcell.util.gui.ColorIcon) SubVolume(cbit.vcell.geometry.SubVolume)

Example 3 with ColorIcon

use of org.vcell.util.gui.ColorIcon in project vcell by virtualcell.

the class StructureMappingTableModel method updateSubdomainComboBox.

@SuppressWarnings({ "rawtypes", "unchecked" })
private void updateSubdomainComboBox() {
    GeometryClass[] geometryClasses = getGeometryContext().getGeometry().getGeometryClasses();
    DefaultComboBoxModel aModel = new DefaultComboBoxModel();
    for (GeometryClass gc : geometryClasses) {
        aModel.addElement(gc);
    }
    JComboBox subdomainComboBoxCellEditor = new JComboBox();
    subdomainComboBoxCellEditor.setRenderer(new DefaultListCellRenderer() {

        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
            super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
            setHorizontalTextPosition(SwingConstants.LEFT);
            if (value instanceof GeometryClass) {
                GeometryClass gc = (GeometryClass) value;
                setText(gc.getName());
                if (value instanceof SubVolume) {
                    SubVolume subVolume = (SubVolume) value;
                    java.awt.Color handleColor = new java.awt.Color(colormap[subVolume.getHandle()]);
                    // small square icon with subdomain color
                    Icon icon = new ColorIcon(10, 10, handleColor, true);
                    setHorizontalTextPosition(SwingConstants.RIGHT);
                    setIcon(icon);
                } else if (value instanceof SurfaceClass) {
                    SurfaceClass sc = (SurfaceClass) value;
                    Set<SubVolume> sv = sc.getAdjacentSubvolumes();
                    Iterator<SubVolume> iterator = sv.iterator();
                    SubVolume sv1 = iterator.next();
                    SubVolume sv2 = iterator.next();
                    java.awt.Color c1 = new java.awt.Color(colormap[sv2.getHandle()]);
                    java.awt.Color c2 = new java.awt.Color(colormap[sv1.getHandle()]);
                    Icon icon = new ColorIconEx(10, 10, c1, c2);
                    setIcon(icon);
                    setHorizontalTextPosition(SwingConstants.RIGHT);
                }
            }
            return this;
        }
    });
    subdomainComboBoxCellEditor.setModel(aModel);
    ownerTable.getColumnModel().getColumn(SPATIAL_COLUMN_SUBDOMAIN).setCellEditor(new DefaultCellEditor(subdomainComboBoxCellEditor));
}
Also used : GeometryClass(cbit.vcell.geometry.GeometryClass) ColorIcon(org.vcell.util.gui.ColorIcon) JComboBox(javax.swing.JComboBox) SurfaceClass(cbit.vcell.geometry.SurfaceClass) DefaultComboBoxModel(javax.swing.DefaultComboBoxModel) DefaultCellEditor(javax.swing.DefaultCellEditor) DefaultListCellRenderer(javax.swing.DefaultListCellRenderer) SubVolume(cbit.vcell.geometry.SubVolume) ColorIcon(org.vcell.util.gui.ColorIcon) Icon(javax.swing.Icon) Component(java.awt.Component) ColorIconEx(org.vcell.util.gui.ColorIconEx) JList(javax.swing.JList)

Example 4 with ColorIcon

use of org.vcell.util.gui.ColorIcon in project vcell by virtualcell.

the class OverlayEditorPanelJAI method initialize.

/**
 * This method initializes this
 */
private void initialize() {
    this.setSize(734, 710);
    final GridBagLayout gridBagLayout_1 = new GridBagLayout();
    gridBagLayout_1.rowWeights = new double[] { 0.0, 1.0, 0 };
    gridBagLayout_1.columnWeights = new double[] { 1.0 };
    gridBagLayout_1.rowHeights = new int[] { 0, 0, 0 };
    this.setLayout(gridBagLayout_1);
    editROIPanel = new JPanel();
    final GridBagLayout gridBagLayout_2 = new GridBagLayout();
    gridBagLayout_2.rowHeights = new int[] { 0, 0, 7 };
    gridBagLayout_2.columnWidths = new int[] { 0, 7 };
    editROIPanel.setLayout(gridBagLayout_2);
    final GridBagConstraints gridBagConstraints_6 = new GridBagConstraints();
    gridBagConstraints_6.anchor = GridBagConstraints.WEST;
    gridBagConstraints_6.insets = new Insets(2, 2, 5, 2);
    gridBagConstraints_6.weightx = 1.0;
    gridBagConstraints_6.gridy = 0;
    gridBagConstraints_6.gridx = 0;
    add(editROIPanel, gridBagConstraints_6);
    final JLabel infoLabel = new JLabel();
    infoLabel.setText("Data Info:");
    final GridBagConstraints gridBagConstraints_12 = new GridBagConstraints();
    gridBagConstraints_12.insets = new Insets(0, 0, 0, 4);
    gridBagConstraints_12.anchor = GridBagConstraints.EAST;
    gridBagConstraints_12.gridy = 0;
    gridBagConstraints_12.gridx = 0;
    editROIPanel.add(infoLabel, gridBagConstraints_12);
    textLabel = new JLabel();
    textLabel.setPreferredSize(new Dimension(500, 20));
    textLabel.setMinimumSize(new Dimension(500, 20));
    final GridBagConstraints gridBagConstraints_2 = new GridBagConstraints();
    gridBagConstraints_2.fill = GridBagConstraints.HORIZONTAL;
    gridBagConstraints_2.weightx = 1;
    gridBagConstraints_2.insets = new Insets(0, 2, 0, 0);
    gridBagConstraints_2.anchor = GridBagConstraints.WEST;
    gridBagConstraints_2.gridy = 0;
    gridBagConstraints_2.gridx = 1;
    gridBagConstraints_2.gridwidth = 2;
    editROIPanel.add(textLabel, gridBagConstraints_2);
    textLabel.setText("No FRAP DataSet loaded.");
    autoCropButton = new JButton(new ImageIcon(getClass().getResource("/images/autoCrop.gif")));
    autoCropButton.setName("roiAutoCropBtn");
    autoCropButton.addActionListener(new ActionListener() {

        public void actionPerformed(final ActionEvent e) {
            firePropertyChange(FRAP_DATA_AUTOCROP_PROPERTY, null, null);
        }
    });
    clearROIbutton = new JButton(new ImageIcon(getClass().getResource("/images/clearROI.gif")));
    clearROIbutton.setEnabled(false);
    clearROIbutton.setName("clearROIBtn");
    clearROIbutton.addActionListener(new ActionListener() {

        public void actionPerformed(final ActionEvent e) {
            if (roiComboBox.getItemCount() == 0) {
                giveROIRequiredWarning("Clear Domain");
                return;
            }
            firePropertyChange(FRAP_DATA_CLEARROI_PROPERTY, ((ROIMultiPaintManager.ComboboxROIName) roiComboBox.getSelectedItem()), null);
        }
    });
    viewZLabel = new JLabel();
    viewZLabel.setText("View Z:");
    final GridBagConstraints gridBagConstraints_17 = new GridBagConstraints();
    gridBagConstraints_17.insets = new Insets(0, 0, 0, 4);
    gridBagConstraints_17.anchor = GridBagConstraints.EAST;
    gridBagConstraints_17.gridy = 1;
    gridBagConstraints_17.gridx = 0;
    editROIPanel.add(viewZLabel, gridBagConstraints_17);
    final JPanel panel_1 = new JPanel();
    final GridBagLayout gridBagLayout_4 = new GridBagLayout();
    gridBagLayout_4.columnWeights = new double[] { 1.0 };
    gridBagLayout_4.columnWidths = new int[] { 7 };
    panel_1.setLayout(gridBagLayout_4);
    final GridBagConstraints gridBagConstraints_18 = new GridBagConstraints();
    gridBagConstraints_18.anchor = GridBagConstraints.WEST;
    gridBagConstraints_18.insets = new Insets(0, 2, 0, 0);
    gridBagConstraints_18.fill = GridBagConstraints.HORIZONTAL;
    gridBagConstraints_18.weightx = 0;
    gridBagConstraints_18.gridy = 1;
    gridBagConstraints_18.gridx = 1;
    editROIPanel.add(panel_1, gridBagConstraints_18);
    final GridBagConstraints gridBagConstraints_19 = new GridBagConstraints();
    gridBagConstraints_19.insets = new Insets(0, 0, 5, 0);
    gridBagConstraints_19.fill = GridBagConstraints.HORIZONTAL;
    gridBagConstraints_19.anchor = GridBagConstraints.WEST;
    gridBagConstraints_19.weightx = 1;
    gridBagConstraints_19.gridy = 0;
    gridBagConstraints_19.gridx = 0;
    panel_1.add(getZSlider(), gridBagConstraints_19);
    viewTLabel = new JLabel();
    viewTLabel.setText("View Time:");
    final GridBagConstraints gridBagConstraints_13 = new GridBagConstraints();
    gridBagConstraints_13.insets = new Insets(0, 0, 0, 4);
    gridBagConstraints_13.anchor = GridBagConstraints.EAST;
    gridBagConstraints_13.gridy = 2;
    gridBagConstraints_13.gridx = 0;
    editROIPanel.add(viewTLabel, gridBagConstraints_13);
    final JPanel panel = new JPanel();
    panel.setLayout(new GridBagLayout());
    final GridBagConstraints gridBagConstraints_15 = new GridBagConstraints();
    gridBagConstraints_15.fill = GridBagConstraints.HORIZONTAL;
    gridBagConstraints_15.weightx = 1;
    gridBagConstraints_15.insets = new Insets(0, 0, 0, 0);
    gridBagConstraints_15.anchor = GridBagConstraints.WEST;
    gridBagConstraints_15.gridy = 0;
    gridBagConstraints_15.gridx = 0;
    panel.add(getTimeSlider(), gridBagConstraints_15);
    final GridBagConstraints gridBagConstraints_14 = new GridBagConstraints();
    gridBagConstraints_14.fill = GridBagConstraints.HORIZONTAL;
    gridBagConstraints_14.insets = new Insets(0, 2, 0, 0);
    gridBagConstraints_14.anchor = GridBagConstraints.WEST;
    gridBagConstraints_14.gridy = 2;
    gridBagConstraints_14.gridx = 1;
    editROIPanel.add(panel, gridBagConstraints_14);
    final JPanel editROIButtonPanel = new JPanel();
    final GridBagLayout gridBagLayout_3 = new GridBagLayout();
    gridBagLayout_3.rowWeights = new double[] { 0.0, 1.0 };
    gridBagLayout_3.columnWeights = new double[] { 0.0, 1.0, 0.0, 0.0, 0.0, 0.0 };
    gridBagLayout_3.columnWidths = new int[] { 0, 0, 7, 7, 0, 0 };
    editROIButtonPanel.setLayout(gridBagLayout_3);
    final GridBagConstraints gridBagConstraints_8 = new GridBagConstraints();
    gridBagConstraints_8.gridwidth = 2;
    gridBagConstraints_8.weightx = 0;
    gridBagConstraints_8.fill = GridBagConstraints.HORIZONTAL;
    gridBagConstraints_8.insets = new Insets(0, 2, 0, 0);
    gridBagConstraints_8.anchor = GridBagConstraints.WEST;
    gridBagConstraints_8.gridy = 3;
    gridBagConstraints_8.gridx = 0;
    editROIPanel.add(editROIButtonPanel, gridBagConstraints_8);
    panel_2 = new JPanel();
    GridBagConstraints gbc_panel_2 = new GridBagConstraints();
    gbc_panel_2.insets = new Insets(2, 2, 2, 2);
    gbc_panel_2.weighty = 1.0;
    gbc_panel_2.weightx = 1.0;
    gbc_panel_2.fill = GridBagConstraints.BOTH;
    gbc_panel_2.gridx = 0;
    gbc_panel_2.gridy = 1;
    add(panel_2, gbc_panel_2);
    GridBagLayout gbl_panel_2 = new GridBagLayout();
    gbl_panel_2.columnWidths = new int[] { 0, 0, 0 };
    gbl_panel_2.rowHeights = new int[] { 0 };
    gbl_panel_2.columnWeights = new double[] { 0, 1.0, 0.0 };
    gbl_panel_2.rowWeights = new double[] { 0.0 };
    panel_2.setLayout(gbl_panel_2);
    panel_3 = new JPanel();
    panel_3.setBorder(new LineBorder(new Color(0, 0, 0)));
    GridBagConstraints gbc_panel_3 = new GridBagConstraints();
    gbc_panel_3.fill = GridBagConstraints.BOTH;
    gbc_panel_3.insets = new Insets(2, 2, 2, 2);
    gbc_panel_3.gridx = 0;
    gbc_panel_3.gridy = 0;
    panel_2.add(panel_3, gbc_panel_3);
    GridBagLayout gbl_panel_3 = new GridBagLayout();
    gbl_panel_3.columnWidths = new int[] { 0, 0 };
    gbl_panel_3.rowHeights = new int[] { 0, 0, 0, 0 };
    gbl_panel_3.columnWeights = new double[] { 0.0, Double.MIN_VALUE };
    gbl_panel_3.rowWeights = new double[] { 0.0, 0.0, 0.0, Double.MIN_VALUE };
    panel_3.setLayout(gbl_panel_3);
    domainRegionLabel = new JLabel(DOMAIN_LIST_TEXT);
    GridBagConstraints gbc_domainRegionLabel = new GridBagConstraints();
    gbc_domainRegionLabel.insets = new Insets(0, 0, 2, 0);
    gbc_domainRegionLabel.gridx = 0;
    gbc_domainRegionLabel.gridy = 0;
    panel_3.add(domainRegionLabel, gbc_domainRegionLabel);
    scrollPane = new JScrollPane();
    GridBagConstraints gbc_scrollPane = new GridBagConstraints();
    gbc_scrollPane.insets = new Insets(0, 2, 0, 0);
    gbc_scrollPane.weighty = 1.0;
    gbc_scrollPane.fill = GridBagConstraints.BOTH;
    gbc_scrollPane.gridx = 0;
    gbc_scrollPane.gridy = 1;
    panel_3.add(scrollPane, gbc_scrollPane);
    scrollPane.setPreferredSize(new Dimension(125, 10));
    scrollPane.setMinimumSize(new Dimension(125, 10));
    scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
    scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
    resolvedList = new JList();
    resolvedList.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {
            super.mouseClicked(e);
            if (showConvertPopup(e, false) == SHOWCONVERT.HANDLED) {
                return;
            }
            if (e.getClickCount() == 2) {
                firePropertyChange(FRAP_DATA_FINDROI_PROPERTY, null, resolvedList.getSelectedValue());
            }
        }

        @Override
        public void mousePressed(MouseEvent e) {
            // TODO Auto-generated method stub
            super.mousePressed(e);
            if (showConvertPopup(e, false) == SHOWCONVERT.HANDLED) {
                return;
            }
        }

        @Override
        public void mouseReleased(MouseEvent e) {
            // TODO Auto-generated method stub
            super.mouseReleased(e);
            if (showConvertPopup(e, false) == SHOWCONVERT.HANDLED) {
                return;
            }
        }
    });
    resolvedList.addListSelectionListener(resolvedListSelectionListener);
    resolvedList.setCellRenderer(resolvedObjectListCellRenderer);
    scrollPane.setViewportView(resolvedList);
    mergeButton = new JButton("Auto-Merge");
    mergeButton.setToolTipText("Remove regions by merging with neighbor");
    mergeButton.setEnabled(false);
    mergeButton.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            resolvedListSelection(true);
        }
    });
    GridBagConstraints gbc_mergeButton = new GridBagConstraints();
    gbc_mergeButton.gridx = 0;
    gbc_mergeButton.gridy = 2;
    panel_3.add(mergeButton, gbc_mergeButton);
    GridBagConstraints gbc_jScrollPane2 = new GridBagConstraints();
    gbc_jScrollPane2.weighty = 1.0;
    gbc_jScrollPane2.weightx = 1.0;
    gbc_jScrollPane2.fill = GridBagConstraints.BOTH;
    gbc_jScrollPane2.insets = new Insets(2, 2, 2, 2);
    gbc_jScrollPane2.gridx = 1;
    gbc_jScrollPane2.gridy = 0;
    panel_2.add(getJScrollPane2(), gbc_jScrollPane2);
    GridBagConstraints gbc_toolButtonPanel = new GridBagConstraints();
    gbc_toolButtonPanel.weighty = 1.0;
    gbc_toolButtonPanel.insets = new Insets(2, 2, 0, 2);
    gbc_toolButtonPanel.anchor = GridBagConstraints.NORTH;
    gbc_toolButtonPanel.gridx = 2;
    gbc_toolButtonPanel.gridy = 0;
    panel_2.add(getToolButtonPanel(), gbc_toolButtonPanel);
    roiComboBox = new JComboBox();
    roiComboBox.setName("activeROIComboBox");
    roiComboBox.setRenderer(new ListCellRenderer() {

        private DefaultListCellRenderer listCellRender = new DefaultListCellRenderer();

        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
            ROIMultiPaintManager.ComboboxROIName comboboxROIName = (ROIMultiPaintManager.ComboboxROIName) value;
            if (comboboxROIName == null) {
                // return blank
                return listCellRender.getListCellRendererComponent(list, null, index, isSelected, cellHasFocus);
            }
            if (comboboxROIName.getHighlightColor() == null) {
                // return text only
                return listCellRender.getListCellRendererComponent(list, comboboxROIName.getROIName(), index, isSelected, cellHasFocus);
            }
            // return text with small color box
            Icon icon = new ColorIcon(20, 20, comboboxROIName.getHighlightColor());
            JLabel jlable = (JLabel) listCellRender.getListCellRendererComponent(list, icon, index, isSelected, cellHasFocus);
            jlable.setText(comboboxROIName.getROIName());
            return jlable;
        }
    });
    roiComboBox.addActionListener(ROI_COMBOBOX_ACTIONLISTENER);
    lblNewLabel = new JLabel("Active Domain:");
    GridBagConstraints gbc_lblNewLabel = new GridBagConstraints();
    gbc_lblNewLabel.insets = new Insets(4, 4, 4, 4);
    gbc_lblNewLabel.anchor = GridBagConstraints.EAST;
    gbc_lblNewLabel.gridx = 0;
    gbc_lblNewLabel.gridy = 0;
    editROIButtonPanel.add(lblNewLabel, gbc_lblNewLabel);
    final GridBagConstraints gridBagConstraints_1 = new GridBagConstraints();
    gridBagConstraints_1.fill = GridBagConstraints.HORIZONTAL;
    gridBagConstraints_1.insets = new Insets(4, 4, 5, 5);
    gridBagConstraints_1.weightx = 1;
    gridBagConstraints_1.gridy = 0;
    gridBagConstraints_1.gridx = 1;
    editROIButtonPanel.add(roiComboBox, gridBagConstraints_1);
    addROIButton = new JButton();
    addROIButton.setName("roiAddBtn");
    addROIButton.addActionListener(addROIActionListener);
    addROIButton.setText("Add Domain...");
    final GridBagConstraints gridBagConstraints_3 = new GridBagConstraints();
    gridBagConstraints_3.insets = new Insets(4, 4, 5, 5);
    gridBagConstraints_3.gridy = 0;
    gridBagConstraints_3.gridx = 2;
    editROIButtonPanel.add(addROIButton, gridBagConstraints_3);
    delROIButton = new JButton();
    delROIButton.setName("roiDeleteBtn");
    delROIButton.addActionListener(new ActionListener() {

        public void actionPerformed(final ActionEvent e) {
            firePropertyChange(FRAP_DATA_DELETEROI_PROPERTY, ((ROIMultiPaintManager.ComboboxROIName) roiComboBox.getSelectedItem()), null);
        }
    });
    delROIButton.setText("Delete Domain...");
    delROIButton.setEnabled(false);
    final GridBagConstraints gridBagConstraints_4 = new GridBagConstraints();
    gridBagConstraints_4.insets = new Insets(4, 4, 5, 5);
    gridBagConstraints_4.gridy = 0;
    gridBagConstraints_4.gridx = 3;
    editROIButtonPanel.add(delROIButton, gridBagConstraints_4);
    discardHighlightsButton = new JButton("Clear Selections");
    discardHighlightsButton.setEnabled(false);
    discardHighlightsButton.setName("clearHighlightsBtn");
    discardHighlightsButton.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            firePropertyChange(FRAP_DATA_DISCARDHIGHLIGHT_PROPERTY, null, null);
        }
    });
    GridBagConstraints gbc_specialActionsButton = new GridBagConstraints();
    gbc_specialActionsButton.insets = new Insets(4, 4, 5, 5);
    gbc_specialActionsButton.gridx = 4;
    gbc_specialActionsButton.gridy = 0;
    editROIButtonPanel.add(discardHighlightsButton, gbc_specialActionsButton);
    channelComboBox = new JComboBox();
    GridBagConstraints gbc_channelComboBox = new GridBagConstraints();
    gbc_channelComboBox.insets = new Insets(4, 4, 5, 4);
    gbc_channelComboBox.gridx = 5;
    gbc_channelComboBox.gridy = 0;
    editROIButtonPanel.add(channelComboBox, gbc_channelComboBox);
    channelComboBox.addActionListener(channelActionListener);
    channelComboBox.setPreferredSize(new Dimension(100, 22));
    channelComboBox.setMinimumSize(new Dimension(100, 20));
    blendPercentPanel = new JPanel();
    blendPercentPanel.setBorder(new LineBorder(new Color(0, 0, 0)));
    GridBagConstraints gbc_panel_2a = new GridBagConstraints();
    gbc_panel_2a.gridwidth = 6;
    gbc_panel_2a.insets = new Insets(4, 4, 4, 4);
    gbc_panel_2a.fill = GridBagConstraints.BOTH;
    gbc_panel_2a.gridx = 0;
    gbc_panel_2a.gridy = 1;
    editROIButtonPanel.add(blendPercentPanel, gbc_panel_2a);
    GridBagLayout gbl_panel_2a = new GridBagLayout();
    blendPercentPanel.setLayout(gbl_panel_2a);
    blendPercentROILabel = new JLabel("Domains");
    GridBagConstraints gbc_blendPercentROILabel = new GridBagConstraints();
    gbc_blendPercentROILabel.anchor = GridBagConstraints.WEST;
    gbc_blendPercentROILabel.gridx = 0;
    gbc_blendPercentROILabel.gridy = 0;
    blendPercentPanel.add(blendPercentROILabel, gbc_blendPercentROILabel);
    blendPercentSlider = new JSlider();
    blendPercentSlider.setToolTipText("Mix view of Domains and background image");
    blendPercentSlider.addChangeListener(new ChangeListener() {

        public void stateChanged(ChangeEvent e) {
            setBlendPercent(blendPercentSlider.getValue());
        // if(!blendPercentSlider.getValueIsAdjusting()){
        // setBlendPercent(blendPercentSlider.getValue());
        // }
        }
    });
    GridBagConstraints gbc_blendPercentSlider = new GridBagConstraints();
    gbc_blendPercentSlider.fill = GridBagConstraints.HORIZONTAL;
    gbc_blendPercentSlider.weightx = 0.5;
    gbc_blendPercentSlider.gridx = 1;
    gbc_blendPercentSlider.gridy = 0;
    blendPercentPanel.add(blendPercentSlider, gbc_blendPercentSlider);
    blendPercentImageLabel = new JLabel("Image");
    GridBagConstraints gbc_blendPercentImageLabel = new GridBagConstraints();
    gbc_blendPercentImageLabel.anchor = GridBagConstraints.EAST;
    gbc_blendPercentImageLabel.gridx = 2;
    gbc_blendPercentImageLabel.gridy = 0;
    blendPercentPanel.add(blendPercentImageLabel, gbc_blendPercentImageLabel);
    smoothOrigLabel = new JLabel("Original");
    GridBagConstraints gbc_smoothOrigLabel = new GridBagConstraints();
    gbc_smoothOrigLabel.insets = new Insets(0, 20, 0, 0);
    gbc_smoothOrigLabel.gridx = 3;
    gbc_smoothOrigLabel.gridy = 0;
    blendPercentPanel.add(smoothOrigLabel, gbc_smoothOrigLabel);
    smoothslider = new JSlider();
    smoothslider.setToolTipText("Smooth background image");
    smoothslider.setSnapToTicks(true);
    smoothslider.setPaintTicks(true);
    smoothslider.setMajorTickSpacing(1);
    smoothslider.setMaximum(10);
    smoothslider.setValue(0);
    smoothslider.addChangeListener(new ChangeListener() {

        public void stateChanged(ChangeEvent e) {
            if (!smoothslider.getValueIsAdjusting()) {
                firePropertyChange(FRAP_DATA_UNDERLAY_SMOOTH_PROPERTY, null, new Integer(smoothslider.getValue()));
            }
        }
    });
    GridBagConstraints gbc_smoothslider = new GridBagConstraints();
    gbc_smoothslider.fill = GridBagConstraints.HORIZONTAL;
    gbc_smoothslider.weightx = 0.5;
    gbc_smoothslider.gridx = 4;
    gbc_smoothslider.gridy = 0;
    blendPercentPanel.add(smoothslider, gbc_smoothslider);
    smootherLabel = new JLabel("Smoother");
    GridBagConstraints gbc_smootherLabel = new GridBagConstraints();
    gbc_smootherLabel.gridx = 5;
    gbc_smootherLabel.gridy = 0;
    blendPercentPanel.add(smootherLabel, gbc_smootherLabel);
    roiDrawButtonGroup.add(selectButton);
    roiDrawButtonGroup.add(paintButton);
    roiDrawButtonGroup.add(eraseButton);
    roiDrawButtonGroup.add(fillButton);
    roiDrawButtonGroup.add(cropButton);
    roiDrawButtonGroup.add(translateToolButton);
    roiDrawButtonGroup.add(scaleToolButton);
    BeanUtils.enableComponents(getToolButtonPanel(), false);
    BeanUtils.enableComponents(editROIPanel, false);
    histogramPanel = new HistogramPanel();
    histogramPanel.addPropertyChangeListener(new PropertyChangeListener() {

        public void propertyChange(PropertyChangeEvent evt) {
            if (evt.getPropertyName().equals(HistogramPanel.HISTOGRAM_SELECT_PROPERTY)) {
                OverlayEditorPanelJAI.this.firePropertyChange(OverlayEditorPanelJAI.FRAP_DATA_HISTOUPDATEHIGHLIGHT_PROPERTY, null, (ListSelectionModel) evt.getNewValue());
            } else if (evt.getPropertyName().equals(HistogramPanel.HISTOGRAM_APPLY_ACTION)) {
                firePropertyChange(OverlayEditorPanelJAI.FRAP_DATA_UPDATEROI_WITHHIGHLIGHT_PROPERTY, null, null);
            }
        }
    });
    histogramPanel.setVisible(false);
    histogramPanel.setBorder(new LineBorder(new Color(0, 0, 0)));
    GridBagConstraints gbc_histogramButton = new GridBagConstraints();
    gbc_histogramButton.fill = GridBagConstraints.BOTH;
    gbc_histogramButton.insets = new Insets(2, 2, 2, 2);
    gbc_histogramButton.gridx = 0;
    gbc_histogramButton.gridy = 2;
    add(histogramPanel, gbc_histogramButton);
}
Also used : JPanel(javax.swing.JPanel) ImageIcon(javax.swing.ImageIcon) GridBagConstraints(java.awt.GridBagConstraints) Insets(java.awt.Insets) ComboboxROIName(cbit.vcell.geometry.gui.ROIMultiPaintManager.ComboboxROIName) GridBagLayout(java.awt.GridBagLayout) PropertyChangeListener(java.beans.PropertyChangeListener) ActionEvent(java.awt.event.ActionEvent) LineBorder(javax.swing.border.LineBorder) JButton(javax.swing.JButton) DefaultListCellRenderer(javax.swing.DefaultListCellRenderer) DefaultListCellRenderer(javax.swing.DefaultListCellRenderer) ListCellRenderer(javax.swing.ListCellRenderer) JSlider(javax.swing.JSlider) ChangeListener(javax.swing.event.ChangeListener) PropertyChangeListener(java.beans.PropertyChangeListener) Component(java.awt.Component) JComponent(javax.swing.JComponent) JScrollPane(javax.swing.JScrollPane) PropertyChangeEvent(java.beans.PropertyChangeEvent) MouseEvent(java.awt.event.MouseEvent) ColorIcon(org.vcell.util.gui.ColorIcon) JComboBox(javax.swing.JComboBox) Color(java.awt.Color) MouseAdapter(java.awt.event.MouseAdapter) JLabel(javax.swing.JLabel) ListSelectionModel(javax.swing.ListSelectionModel) Dimension(java.awt.Dimension) Point(java.awt.Point) ActionListener(java.awt.event.ActionListener) ChangeEvent(javax.swing.event.ChangeEvent) PropertyChangeEvent(java.beans.PropertyChangeEvent) ColorIcon(org.vcell.util.gui.ColorIcon) Icon(javax.swing.Icon) ZoomShapeIcon(cbit.vcell.graph.gui.ZoomShapeIcon) ImageIcon(javax.swing.ImageIcon) JList(javax.swing.JList)

Example 5 with ColorIcon

use of org.vcell.util.gui.ColorIcon in project vcell by virtualcell.

the class CSGObjectTreeCellRenderer method getCSGNodeLabel.

static CSGNodeLabel getCSGNodeLabel(Object object, CSGNodeLabel csgNodeLabel) {
    if (object instanceof CSGObject) {
        CSGObject csgObject = (CSGObject) object;
        csgNodeLabel.text = csgObject.getName();
        java.awt.Color handleColor = new java.awt.Color(getColorMap()[csgObject.getHandle()]);
        csgNodeLabel.icon = new ColorIcon(15, 15, handleColor);
    } else if (object instanceof CSGNode) {
        CSGNode csgNode = (CSGNode) object;
        csgNodeLabel.text = csgNode.getName();
        if (csgNode instanceof CSGPrimitive) {
            CSGPrimitive csgPrimitive = (CSGPrimitive) csgNode;
            switch(csgPrimitive.getType()) {
                case CONE:
                    csgNodeLabel.icon = VCellIcons.csgConeIcon;
                    break;
                case CUBE:
                    csgNodeLabel.icon = VCellIcons.csgCubeIcon;
                    break;
                case CYLINDER:
                    csgNodeLabel.icon = VCellIcons.csgCylinderIcon;
                    break;
                case SPHERE:
                    csgNodeLabel.icon = VCellIcons.csgSphereIcon;
                    break;
            }
            return csgNodeLabel;
        }
        if (csgNode instanceof CSGSetOperator) {
            CSGSetOperator csgSetOperator = (CSGSetOperator) csgNode;
            switch(csgSetOperator.getOpType()) {
                case DIFFERENCE:
                    csgNodeLabel.icon = VCellIcons.csgSetDifferenceIcon;
                    break;
                case INTERSECTION:
                    csgNodeLabel.icon = VCellIcons.csgSetIntersectionIcon;
                    break;
                case UNION:
                    csgNodeLabel.icon = VCellIcons.csgSetUnionIcon;
                    break;
            }
        }
        if (csgNode instanceof CSGTransformation) {
            if (csgNode instanceof CSGRotation) {
                CSGRotation csgRotation = (CSGRotation) csgNode;
                Vect3d axis = csgRotation.getAxis();
                double radius = csgRotation.getRotationRadians();
                csgNodeLabel.text += ", radian=" + radius + ", axis=" + CSGObjectPropertiesPanel.getVect3dDescription(axis);
                csgNodeLabel.icon = VCellIcons.csgRotationIcon;
            } else if (csgNode instanceof CSGTranslation) {
                CSGTranslation csgTranslation = (CSGTranslation) csgNode;
                Vect3d translation = csgTranslation.getTranslation();
                csgNodeLabel.text += ", Translation=" + CSGObjectPropertiesPanel.getVect3dDescription(translation);
                csgNodeLabel.icon = VCellIcons.csgTranslationIcon;
            } else if (csgNode instanceof CSGScale) {
                CSGScale csgScale = (CSGScale) csgNode;
                Vect3d scale = csgScale.getScale();
                csgNodeLabel.text += ", Scale=" + CSGObjectPropertiesPanel.getVect3dDescription(scale);
                csgNodeLabel.icon = VCellIcons.csgScaleIcon;
            } else if (csgNode instanceof CSGHomogeneousTransformation) {
                csgNodeLabel.icon = null;
            }
        }
    }
    return null;
}
Also used : ColorIcon(org.vcell.util.gui.ColorIcon) CSGTranslation(cbit.vcell.geometry.CSGTranslation) CSGTransformation(cbit.vcell.geometry.CSGTransformation) CSGPrimitive(cbit.vcell.geometry.CSGPrimitive) CSGNode(cbit.vcell.geometry.CSGNode) CSGRotation(cbit.vcell.geometry.CSGRotation) Vect3d(cbit.vcell.render.Vect3d) CSGScale(cbit.vcell.geometry.CSGScale) CSGHomogeneousTransformation(cbit.vcell.geometry.CSGHomogeneousTransformation) CSGObject(cbit.vcell.geometry.CSGObject) CSGSetOperator(cbit.vcell.geometry.CSGSetOperator)

Aggregations

ColorIcon (org.vcell.util.gui.ColorIcon)5 SubVolume (cbit.vcell.geometry.SubVolume)3 Icon (javax.swing.Icon)3 GeometryClass (cbit.vcell.geometry.GeometryClass)2 SurfaceClass (cbit.vcell.geometry.SurfaceClass)2 Color (java.awt.Color)2 Component (java.awt.Component)2 DefaultListCellRenderer (javax.swing.DefaultListCellRenderer)2 JComboBox (javax.swing.JComboBox)2 JList (javax.swing.JList)2 CSGHomogeneousTransformation (cbit.vcell.geometry.CSGHomogeneousTransformation)1 CSGNode (cbit.vcell.geometry.CSGNode)1 CSGObject (cbit.vcell.geometry.CSGObject)1 CSGPrimitive (cbit.vcell.geometry.CSGPrimitive)1 CSGRotation (cbit.vcell.geometry.CSGRotation)1 CSGScale (cbit.vcell.geometry.CSGScale)1 CSGSetOperator (cbit.vcell.geometry.CSGSetOperator)1 CSGTransformation (cbit.vcell.geometry.CSGTransformation)1 CSGTranslation (cbit.vcell.geometry.CSGTranslation)1 ComboboxROIName (cbit.vcell.geometry.gui.ROIMultiPaintManager.ComboboxROIName)1