/** * Creates a new tree model that extracts the tree data from the given * <code>source</code>. * * @param source a {@link TreeList} that provides the tree data */ public EventTreeModel(TreeList<E> source) { // lock the source list for reading since we want to prevent writes // from occurring until we fully initialize this EventTableModel source.getReadWriteLock().readLock().lock(); try { disposeSwingThreadSource = !GlazedListsSwing.isSwingThreadProxyList(source); swingThreadSource = disposeSwingThreadSource ? GlazedListsSwing.swingThreadProxyList(source) : (TransformedList) source; // prepare listeners swingThreadSource.addListEventListener(this); } finally { source.getReadWriteLock().readLock().unlock(); } this.treeList = source; }
/** * Creates a new tree model that extracts the tree data from the given * <code>source</code>. * * @param source a {@link TreeList} that provides the tree data */ public EventTreeModel(TreeList<E> source) { // lock the source list for reading since we want to prevent writes // from occurring until we fully initialize this EventTableModel source.getReadWriteLock().readLock().lock(); try { disposeSwingThreadSource = !GlazedListsSwing.isSwingThreadProxyList(source); swingThreadSource = disposeSwingThreadSource ? GlazedListsSwing.swingThreadProxyList(source) : (TransformedList) source; // prepare listeners swingThreadSource.addListEventListener(this); } finally { source.getReadWriteLock().readLock().unlock(); } this.treeList = source; }
/** * Creates a new tree model that extracts the tree data from the given * <code>source</code>. * * @param source a {@link TreeList} that provides the tree data */ public EventTreeModel(TreeList<E> source) { // lock the source list for reading since we want to prevent writes // from occurring until we fully initialize this EventTableModel source.getReadWriteLock().readLock().lock(); try { disposeSwingThreadSource = !GlazedListsSwing.isSwingThreadProxyList(source); swingThreadSource = disposeSwingThreadSource ? GlazedListsSwing.swingThreadProxyList(source) : (TransformedList) source; // prepare listeners swingThreadSource.addListEventListener(this); } finally { source.getReadWriteLock().readLock().unlock(); } this.treeList = source; }
return; treeList.getReadWriteLock().writeLock().lock(); try { treeList.getReadWriteLock().writeLock().unlock();
return; treeList.getReadWriteLock().writeLock().lock(); try { treeList.getReadWriteLock().writeLock().unlock();
treeList.getReadWriteLock().writeLock().lock(); try { treeList.getReadWriteLock().writeLock().unlock();
return; treeList.getReadWriteLock().writeLock().lock(); try { treeList.getReadWriteLock().writeLock().unlock();
treeList.getReadWriteLock().writeLock().lock(); try { treeList.getReadWriteLock().writeLock().unlock();
return; treeList.getReadWriteLock().writeLock().lock(); try { treeList.getReadWriteLock().writeLock().unlock();
treeList.getReadWriteLock().writeLock().lock(); try { treeList.getReadWriteLock().writeLock().unlock();
treeList.getReadWriteLock().writeLock().lock(); try { TreeTableUtilities.toggleExpansion(table, treeList, row).run(); } finally { treeList.getReadWriteLock().writeLock().unlock();
treeList.getReadWriteLock().writeLock().lock(); try { TreeTableUtilities.toggleExpansion(table, treeList, row).run(); } finally { treeList.getReadWriteLock().writeLock().unlock();
/** * Return a decorated form of the component returned by the data * {@link TableCellRenderer}. */ public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { treeList.getReadWriteLock().readLock().lock(); try { // read information about the tree node from the TreeList treeNodeData.setDepth(treeList.depth(row)); treeNodeData.setExpanded(treeList.isExpanded(row)); treeNodeData.setHasChildren(treeList.hasChildren(row)); treeNodeData.setAllowsChildren(treeList.getAllowsChildren(row)); } finally { treeList.getReadWriteLock().readLock().unlock(); } // if the delegate renderer accepts TreeNodeData, give it if (delegate instanceof TreeTableNodeDataRenderer) ((TreeTableNodeDataRenderer) delegate).setTreeNodeData(treeNodeData); // ask the delegate renderer to produce the data component final Component c = delegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); // fetch the number of pixels to indent final int indent = getIndent(treeNodeData, showExpanderForEmptyParent); // fetch the number of pixels to space over final int spacer = getSpacer(treeNodeData, showExpanderForEmptyParent); // ask our special component to configure itself for this tree node component.configure(treeNodeData, showExpanderForEmptyParent, c, hasFocus, indent, spacer); return component; }
/** * Return a decorated form of the component returned by the data * {@link TableCellRenderer}. */ @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { treeList.getReadWriteLock().readLock().lock(); try { // read information about the tree node from the TreeList treeNodeData.setDepth(treeList.depth(row)); treeNodeData.setExpanded(treeList.isExpanded(row)); treeNodeData.setHasChildren(treeList.hasChildren(row)); treeNodeData.setAllowsChildren(treeList.getAllowsChildren(row)); } finally { treeList.getReadWriteLock().readLock().unlock(); } // if the delegate renderer accepts TreeNodeData, give it if (delegate instanceof TreeTableNodeDataRenderer) ((TreeTableNodeDataRenderer) delegate).setTreeNodeData(treeNodeData); // ask the delegate renderer to produce the data component final Component c = delegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); // fetch the number of pixels to indent final int indent = getIndent(treeNodeData, showExpanderForEmptyParent); // fetch the number of pixels to space over final int spacer = getSpacer(treeNodeData, showExpanderForEmptyParent); // ask our special component to configure itself for this tree node component.configure(treeNodeData, showExpanderForEmptyParent, c, hasFocus, indent, spacer); return component; }
/** * Return a decorated form of the component returned by the data * {@link TableCellRenderer}. */ public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { treeList.getReadWriteLock().readLock().lock(); try { // read information about the tree node from the TreeList treeNodeData.setDepth(treeList.depth(row)); treeNodeData.setExpanded(treeList.isExpanded(row)); treeNodeData.setHasChildren(treeList.hasChildren(row)); treeNodeData.setAllowsChildren(treeList.getAllowsChildren(row)); } finally { treeList.getReadWriteLock().readLock().unlock(); } // if the delegate renderer accepts TreeNodeData, give it if (delegate instanceof TreeTableNodeDataRenderer) ((TreeTableNodeDataRenderer) delegate).setTreeNodeData(treeNodeData); // ask the delegate renderer to produce the data component final Component c = delegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); // fetch the number of pixels to indent final int indent = getIndent(treeNodeData, showExpanderForEmptyParent); // fetch the number of pixels to space over final int spacer = getSpacer(treeNodeData, showExpanderForEmptyParent); // ask our special component to configure itself for this tree node component.configure(treeNodeData, showExpanderForEmptyParent, c, hasFocus, indent, spacer); return component; }
/** * Return a decorated form of the component returned by the data * {@link TableCellEditor}. */ public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { treeList.getReadWriteLock().readLock().lock(); try { // read information about the tree node from the TreeList treeNodeData.setDepth(treeList.depth(row)); treeNodeData.setExpanded(treeList.isExpanded(row)); treeNodeData.setHasChildren(treeList.hasChildren(row)); treeNodeData.setAllowsChildren(treeList.getAllowsChildren(row)); } finally { treeList.getReadWriteLock().readLock().unlock(); } // if the delegate editor accepts TreeNodeData, give it if (delegate instanceof TreeTableNodeDataEditor) ((TreeTableNodeDataEditor) delegate).setTreeNodeData(treeNodeData); // ask the delegate editor to produce the data component final Component c = delegate.getTableCellEditorComponent(table, value, isSelected, row, column); // fetch the number of pixels to indent final int indent = getIndent(treeNodeData, showExpanderForEmptyParent); // fetch the number of pixels to space over final int spacer = getSpacer(treeNodeData, showExpanderForEmptyParent); // ask our special component to configure itself for this tree node component.configure(treeNodeData, showExpanderForEmptyParent, c, false, indent, spacer); return component; }
/** * Return a decorated form of the component returned by the data * {@link TableCellEditor}. */ public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { treeList.getReadWriteLock().readLock().lock(); try { // read information about the tree node from the TreeList treeNodeData.setDepth(treeList.depth(row)); treeNodeData.setExpanded(treeList.isExpanded(row)); treeNodeData.setHasChildren(treeList.hasChildren(row)); treeNodeData.setAllowsChildren(treeList.getAllowsChildren(row)); } finally { treeList.getReadWriteLock().readLock().unlock(); } // if the delegate editor accepts TreeNodeData, give it if (delegate instanceof TreeTableNodeDataEditor) ((TreeTableNodeDataEditor) delegate).setTreeNodeData(treeNodeData); // ask the delegate editor to produce the data component final Component c = delegate.getTableCellEditorComponent(table, value, isSelected, row, column); // fetch the number of pixels to indent final int indent = getIndent(treeNodeData, showExpanderForEmptyParent); // fetch the number of pixels to space over final int spacer = getSpacer(treeNodeData, showExpanderForEmptyParent); // ask our special component to configure itself for this tree node component.configure(treeNodeData, showExpanderForEmptyParent, c, false, indent, spacer); return component; }
/** * Return a decorated form of the component returned by the data * {@link TableCellEditor}. */ @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { treeList.getReadWriteLock().readLock().lock(); try { // read information about the tree node from the TreeList treeNodeData.setDepth(treeList.depth(row)); treeNodeData.setExpanded(treeList.isExpanded(row)); treeNodeData.setHasChildren(treeList.hasChildren(row)); treeNodeData.setAllowsChildren(treeList.getAllowsChildren(row)); } finally { treeList.getReadWriteLock().readLock().unlock(); } // if the delegate editor accepts TreeNodeData, give it if (delegate instanceof TreeTableNodeDataEditor) ((TreeTableNodeDataEditor) delegate).setTreeNodeData(treeNodeData); // ask the delegate editor to produce the data component final Component c = delegate.getTableCellEditorComponent(table, value, isSelected, row, column); // fetch the number of pixels to indent final int indent = getIndent(treeNodeData, showExpanderForEmptyParent); // fetch the number of pixels to space over final int spacer = getSpacer(treeNodeData, showExpanderForEmptyParent); // ask our special component to configure itself for this tree node component.configure(treeNodeData, showExpanderForEmptyParent, c, false, indent, spacer); return component; }