Example #1
0
 /** 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);
 }
Example #2
0
  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);
  }
Example #3
0
 /**
  * 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());
 }
Example #4
0
 /**
  * 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());
 }