Moderator: JIDE Support
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.Insets;
import java.util.Properties;
import javax.swing.BoxLayout;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import com.jidesoft.pane.OutlookTabbedPane;
import com.jidesoft.swing.CheckBoxTree;
import com.jidesoft.swing.JideButton;
import com.jidesoft.swing.JideTabbedPane;
public class TreeSelected extends JFrame{
public CheckBoxTree checkBoxTree;
public JScrollPane jideScrollpane;
public JideButton jideBtn;
public OutlookTabbedPane outlookTabbedPane = new OutlookTabbedPane();
public Dimension outlookTabbedPaneSize;
public JPanel OutLookPanel;
public JPanel searchOutLookPanel;
public JPanel contentPane;
public DefaultListModel eventmodel=new DefaultListModel();
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TreeSelected frame = new TreeSelected();
frame.setSize(900,700);
frame.setTitle("CheckBoxFunctionality");
frame.setVisible(true);
JMenu fileMenu = new JMenu("File");
fileMenu.add(new JMenuItem("New"));
fileMenu.add(new JMenuItem("Open"));
fileMenu.add(new JMenuItem("Save"));
fileMenu.add(new JMenuItem("Exit"));
JMenu menu = new JMenu("Edit");
menu.add(new JMenuItem("Cut"));
menu.add(new JMenuItem("Copy"));
menu.add(new JMenuItem("Paste"));
menu.add(new JMenuItem("Select All"));
JMenuBar menuBar = new JMenuBar();
menuBar.add(fileMenu);
menuBar.add(menu);
frame.setJMenuBar(menuBar);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public TreeSelected() {
contentPane=new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JideTabbedPane jideTabbedPane = new JideTabbedPane();
jideTabbedPane.setTabAreaInsets(new Insets(0, 20, 0, 10));
jideTabbedPane.setLayoutTrailingComponentBeforeButtons(true);
jideTabbedPane.setUseDefaultShowCloseButtonOnTab(true);
jideTabbedPane.setSize(900, 100);
JPanel jPanel = new JPanel();
jPanel.setBackground(UIManager.getColor("InternalFrame.inactiveTitleGradient"));
jPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
Properties properties = System.getProperties();
checkBoxTree = new CheckBoxTree(properties);
checkBoxTree.setRootVisible(true);
jideScrollpane = new JScrollPane(checkBoxTree);
jideBtn = new JideButton();
jideBtn.add(jideScrollpane);
checkBoxTree.setRootVisible(false);
checkBoxTree.getCheckBoxTreeSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
// TODO Auto-generated method stub
System.out.println("******************CheckBoxChecked "+e.getSource()) ;
eventmodel.addElement("CheckBox Tree Selected");
}
});
checkBoxTree.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent se) {
System.err.println("@@@@@@@@@@@@@@@@@@@@@@Tree Node Selected " +" "+ checkBoxTree.getCheckBoxTreeSelectionModel());
eventmodel.addElement("Tree Node Selected");
}
});
outlookTabbedPane = new OutlookTabbedPane();
outlookTabbedPane.revalidate();
outlookTabbedPane.add("JIDE View ", jideBtn);
outlookTabbedPane.setVisible(true);
outlookTabbedPaneSize = new Dimension();
outlookTabbedPaneSize.height = 600;
outlookTabbedPaneSize.width = 600;
outlookTabbedPane.setPreferredSize(outlookTabbedPaneSize);
OutLookPanel = new JPanel();
OutLookPanel.setLayout(new BoxLayout(OutLookPanel, BoxLayout.PAGE_AXIS));
OutLookPanel.setBackground(UIManager.getColor("InternalFrame.inactiveTitleGradient"));
OutLookPanel.add(outlookTabbedPane);
searchOutLookPanel = new JPanel();
searchOutLookPanel.add(OutLookPanel);
contentPane.add(searchOutLookPanel, BorderLayout.CENTER);
}
}
ObjectConverterManager.registerConverter(TreePath.class, new ObjectConverter() {
@Override
public String toString(Object object, ConverterContext context) {
return object == null ? "" : object.toString();
}
@Override
public boolean supportToString(Object object, ConverterContext context) {
return true;
}
@Override
public Object fromString(String string, ConverterContext context) {
if (string != null) {
String text = string.trim();
int n = text.indexOf("[");
if (n >= 0) {
text = text.substring(n);
}
if (text.startsWith("[") && text.endsWith("]")) {
String s = text.substring(1, text.length()-1);
String[] split = s.split(",");
Object[] nodes = new Object[split.length];
for (int i = 0; i < nodes.length; i++) {
nodes[i] = new DefaultMutableTreeNode(split[i]);
}
return new TreePath(split);
}
}
return null;
}
@Override
public boolean supportFromString(String string, ConverterContext context) {
return true;
}
}, new ConverterContext("TreePath"));
/*
* @(#)CheckBoxTreeDemo.java 9/10/2005
*
* Copyright 2002 - 2005 JIDE Software Inc. All rights reserved.
*/
import com.jidesoft.icons.IconsFactory;
import com.jidesoft.plaf.LookAndFeelFactory;
import com.jidesoft.swing.*;
import com.jidesoft.tree.TreeUtils;
import javax.swing.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
/**
* Demoed Component: {@link com.jidesoft.swing.CheckBoxTree} <br> Required jar files: jide-common.jar, jide-grids.jar
* <br> Required L&F: any L&F
*/
public class CheckBoxTreeDemo extends AbstractDemo {
private static final long serialVersionUID = 6399345108812286281L;
private CheckBoxTree _tree;
private static final String SINGLE_SELECTION = "Single Selection";
private static final String CONTIGUOUS_SELECTION = "Contiguous Selection";
private static final String DISCONTIGUOUS_SELECTION = "Discontiguous Selection";
public CheckBoxTreeDemo() {
}
public String getName() {
return "CheckBoxTree Demo";
}
public String getProduct() {
return PRODUCT_NAME_COMMON;
}
@Override
public String getDescription() {
return "This is a demo of CheckBoxTree. \n" +
"\n" +
"Demoed classes:\n" +
"com.jidesoft.swing.CheckBoxTree";
}
@Override
public Component getOptionsPanel() {
JPanel panel = new JPanel();
panel.setLayout(new JideBoxLayout(panel, BoxLayout.Y_AXIS, 3));
final JButton selectAll = new JButton(new AbstractAction("Select All") {
private static final long serialVersionUID = -5580913906799074020L;
public void actionPerformed(ActionEvent e) {
if (_tree.getCheckBoxTreeSelectionModel().isDigIn()) {
_tree.getCheckBoxTreeSelectionModel().setSelectionPath(new TreePath(_tree.getModel().getRoot()));
}
}
});
JButton clearAll = new JButton(new AbstractAction("Clear All") {
private static final long serialVersionUID = -2500587806953898010L;
public void actionPerformed(ActionEvent e) {
_tree.getCheckBoxTreeSelectionModel().clearSelection();
}
});
final JCheckBox digIn = new JCheckBox("Dig In");
digIn.addActionListener(new AbstractAction() {
private static final long serialVersionUID = 3184279982208173561L;
public void actionPerformed(ActionEvent e) {
_tree.getCheckBoxTreeSelectionModel().setDigIn(digIn.isSelected());
selectAll.setEnabled(digIn.isSelected());
}
});
digIn.setSelected(_tree.getCheckBoxTreeSelectionModel().isDigIn());
final JCheckBox checkBoxEnabled = new JCheckBox("CheckBox Enabled");
checkBoxEnabled.addActionListener(new AbstractAction() {
private static final long serialVersionUID = 7752042312121853308L;
public void actionPerformed(ActionEvent e) {
_tree.setCheckBoxEnabled(checkBoxEnabled.isSelected());
}
});
checkBoxEnabled.setSelected(_tree.isCheckBoxEnabled());
final JCheckBox clickInCheckBoxOnly = new JCheckBox("Click only valid in CheckBox");
clickInCheckBoxOnly.addActionListener(new AbstractAction() {
private static final long serialVersionUID = 5234198740430142668L;
public void actionPerformed(ActionEvent e) {
_tree.setClickInCheckBoxOnly(clickInCheckBoxOnly.isSelected());
}
});
clickInCheckBoxOnly.setSelected(_tree.isClickInCheckBoxOnly());
final JCheckBox treeEnabled = new JCheckBox("Tree Enabled ");
treeEnabled.addActionListener(new AbstractAction() {
private static final long serialVersionUID = -1027526532901305794L;
public void actionPerformed(ActionEvent e) {
_tree.setEnabled(treeEnabled.isSelected());
}
});
treeEnabled.setSelected(_tree.isEnabled());
final JCheckBox selectPartialFirst = new JCheckBox("Select Partial ");
selectPartialFirst.addActionListener(new AbstractAction() {
private static final long serialVersionUID = 6687098092701174807L;
public void actionPerformed(ActionEvent e) {
_tree.setSelectPartialOnToggling(selectPartialFirst.isSelected());
}
});
selectPartialFirst.setSelected(_tree.isSelectPartialOnToggling());
String[] selectionModes = new String[]{
CheckBoxTreeDemo.SINGLE_SELECTION,
CheckBoxTreeDemo.CONTIGUOUS_SELECTION,
CheckBoxTreeDemo.DISCONTIGUOUS_SELECTION
};
JComboBox comboBox = new JComboBox(selectionModes);
comboBox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED && e.getItem() instanceof String) {
if ((e.getItem()).equals(CheckBoxTreeDemo.SINGLE_SELECTION)) {
_tree.getCheckBoxTreeSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
}
else if ((e.getItem()).equals(CheckBoxTreeDemo.CONTIGUOUS_SELECTION)) {
_tree.getCheckBoxTreeSelectionModel().setSelectionMode(TreeSelectionModel.CONTIGUOUS_TREE_SELECTION);
}
else {
_tree.getCheckBoxTreeSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
}
}
}
});
int mode = _tree.getCheckBoxTreeSelectionModel().getSelectionMode();
switch (mode) {
case TreeSelectionModel.SINGLE_TREE_SELECTION:
comboBox.setSelectedIndex(0);
break;
case TreeSelectionModel.CONTIGUOUS_TREE_SELECTION:
comboBox.setSelectedIndex(1);
break;
case TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION:
comboBox.setSelectedIndex(2);
break;
}
final JCheckBox singleEventMode = new JCheckBox("Single Event Mode");
singleEventMode.addActionListener(new AbstractAction() {
private static final long serialVersionUID = -8967823755465307651L;
public void actionPerformed(ActionEvent e) {
_tree.getCheckBoxTreeSelectionModel().setSingleEventMode(singleEventMode.isSelected());
}
});
singleEventMode.setSelected(_tree.getCheckBoxTreeSelectionModel().isSingleEventMode());
panel.add(new JLabel("Set Selection Mode:"));
panel.add(comboBox);
panel.add(Box.createVerticalStrut(3));
panel.add(digIn);
panel.add(singleEventMode);
panel.add(checkBoxEnabled);
panel.add(clickInCheckBoxOnly);
panel.add(treeEnabled);
panel.add(selectPartialFirst);
panel.add(Box.createVerticalStrut(3));
JPanel buttonPanel = new JPanel(new GridLayout(1, 0, 6, 6));
buttonPanel.add(selectAll);
buttonPanel.add(clearAll);
panel.add(buttonPanel);
panel.add(Box.createGlue());
return panel;
}
public Component getDemoPanel() {
JPanel panel = new JPanel(new BorderLayout(6, 6));
final TreeModel treeModel = DemoData.createSongTreeModel();
JPanel treePanel = new JPanel(new BorderLayout(2, 2));
treePanel.setBorder(BorderFactory.createCompoundBorder(new JideTitledBorder(new PartialEtchedBorder(PartialEtchedBorder.LOWERED, PartialSide.NORTH), "Albums", JideTitledBorder.LEADING, JideTitledBorder.ABOVE_TOP),
BorderFactory.createEmptyBorder(6, 0, 0, 0)));
_tree = new CheckBoxTree(treeModel) {
@Override
public Dimension getPreferredScrollableViewportSize() {
return new Dimension(400, 400);
}
};
_tree.setRootVisible(false);
_tree.setShowsRootHandles(true);
DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) _tree.getActualCellRenderer();
renderer.setLeafIcon(IconsFactory.getImageIcon(QuickFilterTreeDemo.class, "/icons/song.png"));
renderer.setClosedIcon(IconsFactory.getImageIcon(QuickFilterTreeDemo.class, "/icons/album.png"));
renderer.setOpenIcon(IconsFactory.getImageIcon(QuickFilterTreeDemo.class, "/icons/album.png"));
SearchableUtils.installSearchable(_tree);
TreeUtils.expandAll(_tree, true);
JPanel listsPanel = new JPanel(new GridLayout(1, 2));
final JList selectedList = new JList();
final JList eventsList = new JList();
final DefaultListModel eventsModel = new DefaultListModel();
_tree.getCheckBoxTreeSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
TreePath[] paths = e.getPaths();
for (TreePath path : paths) {
eventsModel.addElement((e.isAddedPath(path) ? "Added - " : "Removed - ") + path);
}
eventsModel.addElement("---------------");
eventsList.ensureIndexIsVisible(eventsModel.size() - 1);
TreePath[] treePaths = _tree.getCheckBoxTreeSelectionModel().getSelectionPaths();
DefaultListModel selectedModel = new DefaultListModel();
if (treePaths != null) {
for (TreePath path : treePaths) {
selectedModel.addElement(path);
}
}
selectedList.setModel(selectedModel);
}
});
eventsList.setModel(eventsModel);
selectedList.setVisibleRowCount(8);
eventsList.setVisibleRowCount(8);
JPanel selectedPanel = new JPanel(new BorderLayout());
selectedPanel.setBorder(BorderFactory.createCompoundBorder(new JideTitledBorder(new PartialEtchedBorder(PartialEtchedBorder.LOWERED, PartialSide.NORTH), "Selected Songs", JideTitledBorder.LEADING, JideTitledBorder.ABOVE_TOP),
BorderFactory.createEmptyBorder(6, 0, 0, 0)));
selectedPanel.add(new JScrollPane(selectedList));
JPanel eventsPanel = new JPanel(new BorderLayout());
eventsPanel.setBorder(BorderFactory.createCompoundBorder(new JideTitledBorder(new PartialEtchedBorder(PartialEtchedBorder.LOWERED, PartialSide.NORTH), "Event Fired", JideTitledBorder.LEADING, JideTitledBorder.ABOVE_TOP),
BorderFactory.createEmptyBorder(6, 0, 0, 0)));
eventsPanel.add(new JScrollPane(eventsList));
listsPanel.add(selectedPanel);
listsPanel.add(eventsPanel);
treePanel.add(listsPanel, BorderLayout.AFTER_LAST_LINE);
treePanel.add(new JScrollPane(_tree));
panel.add(treePanel);
_tree.getCheckBoxTreeSelectionModel().addSelectionPath(_tree.getPathForRow(2));
return panel;
}
@Override
public String getDemoFolder() {
return "B16.CheckBoxTree";
}
static public void main(String[] s) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
LookAndFeelFactory.installDefaultLookAndFeelAndExtension();
showAsFrame(new CheckBoxTreeDemo());
}
});
}
}
Return to JIDE Common Layer Open Source Project Discussion (Community Driven)
Users browsing this forum: Google [Bot] and 1 guest