public TriggersTree(TriggersConfigurationDialog tcd) { super(new GridLayout(1, 0)); this.tcd = tcd; rootNode = new DefaultMutableTreeNode("Root Node"); treeModel = new DefaultTreeModel(rootNode); tree = new JTree(treeModel); treeRender = new TriggersTreeRender(); treeCellEditor = new TriggersTreeCellEditor(tree, treeRender); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.setShowsRootHandles(false); tree.setRootVisible(false); tree.setDragEnabled(true); tree.setEditable(true); tree.addTreeSelectionListener(this); tree.setCellEditor(treeCellEditor); ToolTipManager.sharedInstance().registerComponent(tree); tree.setCellRenderer(treeRender); JScrollPane scrollPane = new JScrollPane(tree); add(scrollPane); reload(); for (Trigger trigger : Main.getTriggerManager().getTriggers()) { setSelectedTrigger(trigger); return; } }
public SwingDnDFrame() { setTitle("SwingDnDTest"); JTabbedPane tabbedPane = new JTabbedPane(); JList list = SampleComponents.list(); tabbedPane.addTab("List", list); JTable table = SampleComponents.table(); tabbedPane.addTab("Table", table); JTree tree = SampleComponents.tree(); tabbedPane.addTab("Tree", tree); JFileChooser fileChooser = new JFileChooser(); tabbedPane.addTab("File Chooser", fileChooser); JColorChooser colorChooser = new JColorChooser(); tabbedPane.addTab("Color Chooser", colorChooser); final JTextArea textArea = new JTextArea(4, 40); JScrollPane scrollPane = new JScrollPane(textArea); scrollPane.setBorder(new TitledBorder(new EtchedBorder(), "Drag text here")); JTextField textField = new JTextField("Drag color here"); textField.setTransferHandler(new TransferHandler("background")); tabbedPane.addChangeListener( new ChangeListener() { public void stateChanged(ChangeEvent e) { textArea.setText(""); } }); tree.setDragEnabled(true); table.setDragEnabled(true); list.setDragEnabled(true); fileChooser.setDragEnabled(true); colorChooser.setDragEnabled(true); textField.setDragEnabled(true); add(tabbedPane, BorderLayout.NORTH); add(scrollPane, BorderLayout.CENTER); add(textField, BorderLayout.SOUTH); pack(); }
public ObjectInspector(Db4oViewer viewer, Object object) { this.viewer = viewer; this.object = object; this.setPreferredSize(new Dimension(600, 800)); BorderLayout thisLayout = new BorderLayout(); getContentPane().setLayout(thisLayout); this.setLocation(400, 150); { jSplitPane1 = new JSplitPane(); getContentPane().add(jSplitPane1, BorderLayout.NORTH); jSplitPane1.setOrientation(JSplitPane.VERTICAL_SPLIT); { jPanel1 = new JPanel(); jSplitPane1.add(jPanel1, JSplitPane.BOTTOM); BorderLayout jPanel1Layout = new BorderLayout(); jPanel1.setLayout(jPanel1Layout); jPanel1.setPreferredSize(new java.awt.Dimension(590, 191)); { jPanel2 = new JPanel(); FlowLayout jPanel2Layout = new FlowLayout(); jPanel1.add(jPanel2, BorderLayout.SOUTH); jPanel2.setPreferredSize(new java.awt.Dimension(592, 33)); jPanel2.setLayout(jPanel2Layout); { saveButton = new JButton(); jPanel2.add(saveButton); saveButton.setText("Save"); saveButton.setActionCommand("save"); saveButton.addActionListener(this); } { deleteButton = new JButton(); jPanel2.add(deleteButton); deleteButton.setText("Delete"); deleteButton.setActionCommand("delete"); deleteButton.addActionListener(this); } { refreshButton = new JButton(); jPanel2.add(refreshButton); refreshButton.setText("Refresh"); refreshButton.setActionCommand("refresh"); refreshButton.addActionListener(this); } } { jPanel3 = new JPanel(); jPanel1.add(jPanel3, BorderLayout.NORTH); FlowLayout jPanel3Layout = new FlowLayout(); jPanel3.setLayout(jPanel3Layout); jPanel3.setPreferredSize(new java.awt.Dimension(592, 114)); { fieldEdit = new JTextArea(); jPanel3.add(fieldEdit); fieldEdit.setPreferredSize(new java.awt.Dimension(324, 92)); fieldEdit.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED)); } { editApply = new JButton(); jPanel3.add(editApply); editApply.setText("Apply"); editApply.setActionCommand("apply"); editApply.addActionListener(this); } } } { jScrollPane1 = new JScrollPane(); jSplitPane1.add(jScrollPane1, JSplitPane.TOP); { jTree1 = new AutoScrollingJTree(new DefaultMutableTreeNode()); jScrollPane1.setViewportView(jTree1); jTree1.setDragEnabled(true); TreeDragSource ds = new TreeDragSource(jTree1, DnDConstants.ACTION_COPY_OR_MOVE); TreeDropTarget dt = new TreeDropTarget(jTree1); } } } if (object != null) { this.setTitle(object.toString()); } System.out.println(object); buildTree(); jTree1.addMouseListener(this); this.pack(); this.setVisible(true); }
public TreeView(final Model model) { super(model, "ProjectView"); ProjecTreeModel pModel = new ProjecTreeModel(model) { @Override public void valueForPathChanged(TreePath path, Object newValue) { Object o = path.getLastPathComponent(); if (o instanceof TreeNode) { model.setName((TreeNode) o, (String) newValue); } } }; tree = new JTree(pModel) { @Override public boolean isPathEditable(TreePath path) { Object p = Model.getParent(path.getLastPathComponent()); if (p != model.getRoot()) { return true; } return false; } @Override public String getToolTipText(MouseEvent event) { TreePath path = tree.getPathForLocation(event.getX(), event.getY()); if (path != null) { Object t = path.getLastPathComponent(); if (t instanceof TreeNode) { return "Id: " + Integer.toString(((TreeNode) t).getId()); } } return ""; }; }; ToolTipManager.sharedInstance().registerComponent(tree); Renderer r = new Renderer(); tree.setCellRenderer(r); tree.setRootVisible(false); tree.setToggleClickCount(1); tree.setShowsRootHandles(true); tree.setEditable(true); DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) tree.getCellRenderer(); JTextField comboBox = new JTextField(); comboBox.setEditable(true); DefaultCellEditor comboEditor = new DefaultCellEditor(comboBox); comboEditor.setClickCountToStart(99); TreeCellEditor editor = new DefaultTreeCellEditor(tree, renderer, comboEditor); tree.setCellEditor(editor); tree.addKeyListener( new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_F2) { tree.startEditingAtPath(tree.getSelectionPath()); } } }); this.setLayout(new BorderLayout()); this.add(new JScrollPane(tree), BorderLayout.CENTER); tree.setDragEnabled(false); // expandListener(); drag = new TreeDragSource(tree, DnDConstants.ACTION_COPY_OR_MOVE); }
@Override public void addGui(PreferenceTabbedPane gui) { actionsTree.setCellRenderer( new DefaultTreeCellRenderer() { @Override public Component getTreeCellRendererComponent( JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) value; JLabel comp = (JLabel) super.getTreeCellRendererComponent( tree, value, sel, expanded, leaf, row, hasFocus); if (node.getUserObject() == null) { comp.setText(tr("Separator")); comp.setIcon(ImageProvider.get("preferences/separator")); } else if (node.getUserObject() instanceof Action) { Action action = (Action) node.getUserObject(); comp.setText((String) action.getValue(Action.NAME)); comp.setIcon((Icon) action.getValue(Action.SMALL_ICON)); } return comp; } }); ListCellRenderer renderer = new DefaultListCellRenderer() { @Override public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { String s; Icon i; ActionDefinition action = (ActionDefinition) value; if (!action.isSeparator()) { s = action.getDisplayName(); i = action.getDisplayIcon(); } else { i = ImageProvider.get("preferences/separator"); s = tr("Separator"); } JLabel l = (JLabel) super.getListCellRendererComponent(list, s, index, isSelected, cellHasFocus); l.setIcon(i); return l; } }; selectedList.setCellRenderer(renderer); selectedList.addListSelectionListener( new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { boolean sel = selectedList.getSelectedIndex() != -1; if (sel) { actionsTree.clearSelection(); ActionDefinition action = (ActionDefinition) selected.get(selectedList.getSelectedIndex()); actionParametersModel.setCurrentAction(action); actionParametersPanel.setVisible(actionParametersModel.getRowCount() > 0); } updateEnabledState(); } }); selectedList.setDragEnabled(true); selectedList.setTransferHandler( new TransferHandler() { @Override protected Transferable createTransferable(JComponent c) { List<ActionDefinition> actions = new ArrayList<ActionDefinition>(); for (Object o : ((JList) c).getSelectedValues()) { actions.add((ActionDefinition) o); } return new ActionTransferable(actions); } @Override public int getSourceActions(JComponent c) { return TransferHandler.MOVE; } @Override public boolean canImport(JComponent comp, DataFlavor[] transferFlavors) { for (DataFlavor f : transferFlavors) { if (ACTION_FLAVOR.equals(f)) return true; } return false; } @Override public void exportAsDrag(JComponent comp, InputEvent e, int action) { super.exportAsDrag(comp, e, action); movingComponent = "list"; } @Override public boolean importData(JComponent comp, Transferable t) { try { int dropIndex = selectedList.locationToIndex(selectedList.getMousePosition(true)); List<?> draggedData = (List<?>) t.getTransferData(ACTION_FLAVOR); Object leadItem = dropIndex >= 0 ? selected.elementAt(dropIndex) : null; int dataLength = draggedData.size(); if (leadItem != null) { for (Object o : draggedData) { if (leadItem.equals(o)) return false; } } int dragLeadIndex = -1; boolean localDrop = "list".equals(movingComponent); if (localDrop) { dragLeadIndex = selected.indexOf(draggedData.get(0)); for (Object o : draggedData) { selected.removeElement(o); } } int[] indices = new int[dataLength]; if (localDrop) { int adjustedLeadIndex = selected.indexOf(leadItem); int insertionAdjustment = dragLeadIndex <= adjustedLeadIndex ? 1 : 0; for (int i = 0; i < dataLength; i++) { selected.insertElementAt( draggedData.get(i), adjustedLeadIndex + insertionAdjustment + i); indices[i] = adjustedLeadIndex + insertionAdjustment + i; } } else { for (int i = 0; i < dataLength; i++) { selected.add(dropIndex, draggedData.get(i)); indices[i] = dropIndex + i; } } selectedList.clearSelection(); selectedList.setSelectedIndices(indices); movingComponent = ""; return true; } catch (Exception e) { e.printStackTrace(); } return false; } @Override protected void exportDone(JComponent source, Transferable data, int action) { if (movingComponent.equals("list")) { try { List<?> draggedData = (List<?>) data.getTransferData(ACTION_FLAVOR); boolean localDrop = selected.contains(draggedData.get(0)); if (localDrop) { int[] indices = selectedList.getSelectedIndices(); Arrays.sort(indices); for (int i = indices.length - 1; i >= 0; i--) { selected.remove(indices[i]); } } } catch (Exception e) { e.printStackTrace(); } movingComponent = ""; } } }); actionsTree.setTransferHandler( new TransferHandler() { private static final long serialVersionUID = 1L; @Override public int getSourceActions(JComponent c) { return TransferHandler.MOVE; } @Override protected void exportDone(JComponent source, Transferable data, int action) {} @Override protected Transferable createTransferable(JComponent c) { TreePath[] paths = actionsTree.getSelectionPaths(); List<ActionDefinition> dragActions = new ArrayList<ActionDefinition>(); for (TreePath path : paths) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent(); Object obj = node.getUserObject(); if (obj == null) { dragActions.add(ActionDefinition.getSeparator()); } else if (obj instanceof Action) { dragActions.add(new ActionDefinition((Action) obj)); } } return new ActionTransferable(dragActions); } }); actionsTree.setDragEnabled(true); actionsTree .getSelectionModel() .addTreeSelectionListener( new TreeSelectionListener() { @Override public void valueChanged(TreeSelectionEvent e) { updateEnabledState(); } }); final JPanel left = new JPanel(new GridBagLayout()); left.add(new JLabel(tr("Toolbar")), GBC.eol()); left.add(new JScrollPane(selectedList), GBC.std().fill(GBC.BOTH)); final JPanel right = new JPanel(new GridBagLayout()); right.add(new JLabel(tr("Available")), GBC.eol()); right.add(new JScrollPane(actionsTree), GBC.eol().fill(GBC.BOTH)); final JPanel buttons = new JPanel(new GridLayout(6, 1)); buttons.add(upButton = createButton("up")); buttons.add(addButton = createButton("<")); buttons.add(removeButton = createButton(">")); buttons.add(downButton = createButton("down")); updateEnabledState(); final JPanel p = new JPanel(); p.setLayout( new LayoutManager() { @Override public void addLayoutComponent(String name, Component comp) {} @Override public void removeLayoutComponent(Component comp) {} @Override public Dimension minimumLayoutSize(Container parent) { Dimension l = left.getMinimumSize(); Dimension r = right.getMinimumSize(); Dimension b = buttons.getMinimumSize(); return new Dimension( l.width + b.width + 10 + r.width, l.height + b.height + 10 + r.height); } @Override public Dimension preferredLayoutSize(Container parent) { Dimension l = new Dimension(200, 200); // left.getPreferredSize(); Dimension r = new Dimension(200, 200); // right.getPreferredSize(); return new Dimension( l.width + r.width + 10 + buttons.getPreferredSize().width, Math.max(l.height, r.height)); } @Override public void layoutContainer(Container parent) { Dimension d = p.getSize(); Dimension b = buttons.getPreferredSize(); int width = (d.width - 10 - b.width) / 2; left.setBounds(new Rectangle(0, 0, width, d.height)); right.setBounds(new Rectangle(width + 10 + b.width, 0, width, d.height)); buttons.setBounds( new Rectangle(width + 5, d.height / 2 - b.height / 2, b.width, b.height)); } }); p.add(left); p.add(buttons); p.add(right); actionParametersPanel = new JPanel(new GridBagLayout()); actionParametersPanel.add( new JLabel(tr("Action parameters")), GBC.eol().insets(0, 10, 0, 20)); actionParametersTable.getColumnModel().getColumn(0).setHeaderValue(tr("Parameter name")); actionParametersTable.getColumnModel().getColumn(1).setHeaderValue(tr("Parameter value")); actionParametersPanel.add( actionParametersTable.getTableHeader(), GBC.eol().fill(GBC.HORIZONTAL)); actionParametersPanel.add( actionParametersTable, GBC.eol().fill(GBC.BOTH).insets(0, 0, 0, 10)); actionParametersPanel.setVisible(false); JPanel panel = gui.createPreferenceTab(this); panel.add(p, GBC.eol().fill(GBC.BOTH)); panel.add(actionParametersPanel, GBC.eol().fill(GBC.HORIZONTAL)); selected.removeAllElements(); for (ActionDefinition actionDefinition : getDefinedActions()) { selected.addElement(actionDefinition); } }