(JavaEditor editor, PreprocService pps)
| 48 | |
| 49 | |
| 50 | ShowUsage(JavaEditor editor, PreprocService pps) { |
| 51 | this.editor = editor; |
| 52 | this.pps = pps; |
| 53 | |
| 54 | // Add show usage option |
| 55 | JMenuItem showUsageItem = |
| 56 | new JMenuItem(Language.text("editor.popup.show_usage")); |
| 57 | showUsageItem.addActionListener(e -> handleShowUsage()); |
| 58 | editor.getTextArea().getRightClickPopup().add(showUsageItem); |
| 59 | |
| 60 | reloadListener = this::reloadShowUsage; |
| 61 | |
| 62 | { // Show Usage window |
| 63 | window = new JDialog(editor); |
| 64 | window.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); |
| 65 | window.setAutoRequestFocus(false); |
| 66 | window.addComponentListener(new ComponentAdapter() { |
| 67 | @Override |
| 68 | public void componentHidden(ComponentEvent e) { |
| 69 | binding = null; |
| 70 | tree.setModel(null); |
| 71 | pps.unregisterListener(reloadListener); |
| 72 | } |
| 73 | |
| 74 | @Override |
| 75 | public void componentShown(ComponentEvent e) { |
| 76 | pps.registerListener(reloadListener); |
| 77 | } |
| 78 | }); |
| 79 | window.setSize(Toolkit.zoom(300, 400)); |
| 80 | window.setFocusableWindowState(false); |
| 81 | Toolkit.setIcon(window); |
| 82 | JScrollPane sp2 = new JScrollPane(); |
| 83 | tree = new JTree(); |
| 84 | ZoomTreeCellRenderer renderer = |
| 85 | new ZoomTreeCellRenderer(); |
| 86 | tree.setCellRenderer(renderer); |
| 87 | renderer.setLeafIcon(null); |
| 88 | renderer.setClosedIcon(null); |
| 89 | renderer.setOpenIcon(null); |
| 90 | renderer.setBackgroundSelectionColor(new Color(228, 248, 246)); |
| 91 | renderer.setBorderSelectionColor(new Color(0, 0, 0, 0)); |
| 92 | renderer.setTextSelectionColor(Color.BLACK); |
| 93 | sp2.setViewportView(tree); |
| 94 | window.add(sp2); |
| 95 | } |
| 96 | |
| 97 | tree.addTreeSelectionListener(e -> { |
| 98 | if (tree.getLastSelectedPathComponent() != null) { |
| 99 | DefaultMutableTreeNode tnode = |
| 100 | (DefaultMutableTreeNode) tree.getLastSelectedPathComponent(); |
| 101 | |
| 102 | if (tnode.getUserObject() instanceof ShowUsageTreeNode) { |
| 103 | ShowUsageTreeNode node = (ShowUsageTreeNode) tnode.getUserObject(); |
| 104 | editor.highlight(node.tabIndex, node.startTabOffset, node.stopTabOffset); |
| 105 | } |
| 106 | } |
| 107 | }); |
nothing calls this directly
no test coverage detected