protected void listMouseClicked(EventObject e) { for (ListLevel listLevelTuple : depthLists) { listLevelTuple.list.setCellRenderer(new SceneDepthListCellRender()); } JList list = (JList) e.getSource(); selectedScene = (Scene) list.getSelectedValue(); jumpToBt.setEnabled(true); jumpToBt.setText("Jump to [" + selectedScene.getName() + "]"); int idx = depthLists.indexOf(new ListLevel(-1, list)); assert idx != -1 : "Should have found a scenesList"; if (idx == 0) { JList startList = depthLists.get(1).list; startList.setCellRenderer(new ToCellRenderer(selectedScene)); Util.showComponent(startList); } else if (idx > 0) { JList fromList = depthLists.get(idx - 1).list; logger.debug("Before: " + fromList.getSelectedValue()); fromList.setCellRenderer(new FromCellRenderer(selectedScene)); Util.showComponent(fromList); if (idx + 1 < depthLists.size()) { JList afterList = depthLists.get(idx + 1).list; logger.debug("After: " + afterList.getSelectedValue()); afterList.setCellRenderer(new ToCellRenderer(selectedScene)); Util.showComponent(afterList); } } Util.showComponent(panel); }
static String renderToList(Scene scene) { boolean hasNoTos = true; for (IPath p : scene.getPaths()) { if (p.getTo() != null) { hasNoTos = false; break; } } String sufix = scene.getPaths().isEmpty() ? "] " : hasNoTos ? "#" : " "; return (scene.getScenesFrom().isEmpty() ? " [" : " ") + scene.getName() + sufix; }