@Override public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { if (value instanceof StoryComponentPanel) { final StoryComponentPanel valuePanel; final StoryComponent valueComponent; final Boolean isVisible; valuePanel = (StoryComponentPanel) value; valueComponent = valuePanel.getStoryComponent(); isVisible = valueComponent.isVisible(); valuePanel.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.LIGHT_GRAY)); if (isVisible && valueComponent.getLibrary().isReadOnly() && !isSelected && SEModelManager.getInstance().getActiveModel() instanceof LibraryModel && !ScriptEase.DEBUG_MODE) valuePanel.setBackground(ScriptEaseUI.TERTIARY_UI); else if (isSelected && isVisible) valuePanel.setBackground(list.getSelectionBackground()); else if (isSelected && !isVisible) valuePanel.setBackground(ScriptEaseUI.SELECTED_COLOUR); else if (!isSelected && !isVisible) valuePanel.setBackground(Color.DARK_GRAY); else if (!isSelected && isVisible) valuePanel.setBackground(list.getBackground()); if (valueComponent instanceof CauseIt || valueComponent instanceof ActivityIt) { valuePanel.setShowChildren(false); valuePanel.getExpansionButton().setCollapsed(true); } return valuePanel; } else if (value instanceof JPanel) { return (JPanel) value; } else return new JLabel("Error: Not a story component: " + value.toString()); }
public StoryComponent getStoryComponentForIndex(int index) { StoryComponentPanel panel = getStoryComponentPanelForIndex(index); if (panel != null) { return panel.getStoryComponent(); } else { return null; } }
/** * Returns the index in the StoryComponentPanelJList where the StoryComponentPanel representing * the StoryComponent resides. * * <p>returns -1 if no StoryComponentPanel is found to represent the given StoryComponent * * @param component * @return */ public int getIndexOfStoryComponent(StoryComponent component) { final DefaultListModel listModel = (DefaultListModel) this.getModel(); int returnIndex = -1; for (int panelIndex = 0; panelIndex < listModel.size(); panelIndex++) { final Object element = listModel.elementAt(panelIndex); if (element instanceof StoryComponentPanel) { final StoryComponentPanel panel = (StoryComponentPanel) element; final StoryComponent panelComponent = panel.getStoryComponent(); if (panelComponent == component) { returnIndex = panelIndex; break; } } } return returnIndex; }