/** Sanity: icons updated on LF change. */ public void testTreeIconsUpdateUI() { JXTree tree = new JXTree(); DefaultTreeRenderer renderer = new DefaultTreeRenderer(); tree.setCellRenderer(renderer); WrappingIconPanel before = (WrappingIconPanel) renderer.getTreeCellRendererComponent(tree, "", false, false, true, -1, false); Icon leaf = before.getIcon(); assertNotNull("sanity", leaf); assertEquals("sanity", UIManager.getIcon("Tree.leafIcon"), leaf); String lf = UIManager.getLookAndFeel().getName(); setSystemLF(!defaultToSystemLF); if (lf.equals(UIManager.getLookAndFeel().getName())) { LOG.info("cannot run test - equal LF" + lf); return; } SwingUtilities.updateComponentTreeUI(tree); WrappingIconPanel after = (WrappingIconPanel) renderer.getTreeCellRendererComponent(tree, "", false, false, true, -1, false); Icon leafAfter = after.getIcon(); assertNotNull("sanity", leafAfter); assertFalse("sanity", leaf.equals(leafAfter)); assertEquals("icon must be updated", UIManager.getIcon("Tree.leafIcon"), leafAfter); }
public void interactiveTransparentRenderer() throws IOException { final JXTree tree = new JXTree(new ComponentTreeTableModel(new JXFrame())); tree.setEditable(true); StringValue sv = new StringValue() { public String getString(Object value) { if (value instanceof Component) { return ((Component) value).getName(); } return " - no component - "; } }; DefaultTreeRenderer renderer = new DefaultTreeRenderer(sv); tree.setCellRenderer(renderer); tree.setForeground(Color.WHITE); JXPanel panel = new JXPanel(new BorderLayout()); ImagePainter imagePainter = new ImagePainter(XTestUtils.loadDefaultImage()); imagePainter.setFillHorizontal(true); imagePainter.setFillVertical(true); panel.setBackgroundPainter(imagePainter); panel.add(new JScrollPane(tree)); JXFrame frame = wrapInFrame(panel, "renderer"); WrappingProvider provider = (WrappingProvider) renderer.getComponentProvider(); provider.getWrappee().getRendererComponent(null).setOpaque(false); tree.setOpaque(false); ((JComponent) tree.getParent()).setOpaque(false); ((JComponent) tree.getParent().getParent()).setOpaque(false); Action edit = new AbstractActionExt("edit") { public void actionPerformed(ActionEvent e) { if (tree.isSelectionEmpty()) return; TreePath path = tree.getSelectionPath(); Component comp = (Component) path.getLastPathComponent(); String oldName = comp.getName(); if (oldName == null) { oldName = "none"; } String changed = oldName.length() > 60 ? oldName.substring(0, 20) : oldName + "+++++++++++++++++++++++++++++++++++++++++++++"; tree.getModel().valueForPathChanged(path, changed); } }; addAction(frame, edit); show(frame); }
/** * base interaction with list: renderer uses list's unselected colors * * <p>currently, this test fails because the assumptions are wrong! Core renderer behaves slightly * unexpected. */ public void testTreeRendererExtColors() { // prepare standard Component coreComponent = coreTreeRenderer.getTreeCellRendererComponent(tree, null, false, false, false, 0, false); // sanity: known standard behaviour assertNull(coreComponent.getBackground()); // assertNull(coreComponent.getForeground()); assertNull(tree.getForeground()); Color uiForeground = UIManager.getColor("Tree.textForeground"); assertEquals(uiForeground, coreComponent.getForeground()); // prepare extended Component xComponent = xTreeRenderer.getTreeCellRendererComponent(tree, null, false, false, false, 0, false); // assert behaviour same as standard // assertEquals(coreComponent.getBackground(), xComponent.getBackground()); assertEquals(coreComponent.getForeground(), xComponent.getForeground()); }
/** * base interaction with list: renderer uses list's unselected custom colors. * * <p>currently, this test fails because the assumptions are wrong! Core renderer behaves slightly * unexpected. */ public void testTreeRendererExtTreeColors() { Color background = Color.MAGENTA; Color foreground = Color.YELLOW; tree.setBackground(background); tree.setForeground(foreground); coreTreeRenderer.setBackgroundNonSelectionColor(background); coreTreeRenderer.setTextNonSelectionColor(foreground); // prepare standard Component coreComponent = coreTreeRenderer.getTreeCellRendererComponent(tree, null, false, false, false, 0, false); // sanity: known standard behaviour // background is manually painted assertEquals(background, coreComponent.getBackground()); assertEquals(tree.getForeground(), coreComponent.getForeground()); // prepare extended Component xComponent = xTreeRenderer.getTreeCellRendererComponent(tree, null, false, false, false, 0, false); // assert behaviour same as standard assertEquals(background, xComponent.getBackground()); assertEquals(foreground, xComponent.getForeground()); }