本文整理汇总了Java中org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode类的典型用法代码示例。如果您正苦于以下问题:Java DefaultMutableTreeTableNode类的具体用法?Java DefaultMutableTreeTableNode怎么用?Java DefaultMutableTreeTableNode使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
DefaultMutableTreeTableNode类属于org.jdesktop.swingx.treetable包,在下文中一共展示了DefaultMutableTreeTableNode类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: testExpandAllWithInvisible
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; //导入依赖的package包/类
/**
* Issue #254-swingx: expandAll doesn't expand if root not shown?
*
*/
@Test
public void testExpandAllWithInvisible() {
final DefaultMutableTreeTableNode root = new DefaultMutableTreeTableNode();
final InsertTreeTableModel model = new InsertTreeTableModel(root);
int childCount = 5;
for (int i = 0; i < childCount; i++) {
model.addChild(root);
}
final JXTree treeTable = new JXTree(model);
// sanity...
assertTrue(treeTable.isRootVisible());
assertEquals("all children visible", childCount + 1, treeTable.getRowCount());
treeTable.collapseAll();
assertEquals(" all children invisible", 1, treeTable.getRowCount());
treeTable.setRootVisible(false);
assertEquals("no rows with invisible root", 0, treeTable.getRowCount());
treeTable.expandAll();
assertTrue(treeTable.getRowCount() > 0);
}
示例2: testTableEventOnSetRootNoStructureChange
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; //导入依赖的package包/类
/**
* Issue #493-swingx: incorrect table events fired.
* Issue #592-swingx: (no structureChanged table events) is a special
* case of the former.
*
* Here: add support to prevent a structureChanged even when setting
* the root. May be required if the columns are stable and the
* model lazily loaded. Quick hack would be to add a clientProperty?
*
* @throws InvocationTargetException
* @throws InterruptedException
*/
public void testTableEventOnSetRootNoStructureChange() throws InterruptedException, InvocationTargetException {
TreeTableModel model = createCustomTreeTableModelFromDefault();
final JXTreeTable table = new JXTreeTable(model);
table.setRootVisible(true);
table.expandAll();
final TableModelReport report = new TableModelReport();
table.getModel().addTableModelListener(report);
((DefaultTreeTableModel) model).setRoot(new DefaultMutableTreeTableNode("other"));
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
assertEquals("tableModel must have fired", 1, report.getEventCount());
assertTrue("event type must be dataChanged " + TableModelReport.printEvent(report.getLastEvent()),
report.isDataChanged(report.getLastEvent()));
}
});
}
示例3: testDateEditorValueAsDate
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; //导入依赖的package包/类
/**
* Test Picker's value --> date mapping strategy.
* @throws ParseException
*
*
*/
@Test
public void testDateEditorValueAsDate() throws ParseException {
DatePickerCellEditor editor = new DatePickerCellEditor();
Date input = new Date();
assertEquals("the input date must be unchanged", input, editor.getValueAsDate(input));
assertEquals("input as long must be same", input, editor.getValueAsDate(input.getTime()));
// PENDING: fails on server, moved out off the way into visual check for now
// String dateString = editor.getFormats()[0].format(input);
// Date fullCycle = editor.getFormats()[0].parse(dateString);
// assertEquals("the formatted input date string must be same", fullCycle, editor.getValueAsDate(dateString));
String nonsenseString = "invalid";
assertNull("invalid string maps to null", editor.getValueAsDate(nonsenseString));
assertNull("empty String maps to null", editor.getValueAsDate(""));
// same with date/string wrapped into TreeNode
DefaultMutableTreeNode node = new DefaultMutableTreeNode(input);
assertEquals("date must be user-object", input, editor.getValueAsDate(node));
// same with date/string wrapped into a TreeTableNode
DefaultMutableTreeTableNode tableNode = new DefaultMutableTreeTableNode(input);
assertEquals("date must be user-object", input, editor.getValueAsDate(tableNode));
}
示例4: testTableEventOnSetRoot
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; //导入依赖的package包/类
/**
* Issue #493-swingx: incorrect table events fired.
* Issue #592-swingx: (no structureChanged table events) is a special
* case of the former.
*
* Here: must fire structureChanged on setRoot(otherroot).
* failed - because the treeStructureChanged is mapped to a
* tableDataChanged.
*
* @throws InvocationTargetException
* @throws InterruptedException
*/
@Test
public void testTableEventOnSetRoot() throws InterruptedException, InvocationTargetException {
TreeTableModel model = createCustomTreeTableModelFromDefault();
final JXTreeTable table = new JXTreeTable(model);
table.setRootVisible(true);
table.expandAll();
final TableModelReport report = new TableModelReport();
table.getModel().addTableModelListener(report);
((DefaultTreeTableModel) model).setRoot(new DefaultMutableTreeTableNode("other"));
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
assertEquals("tableModel must have fired", 1, report.getEventCount());
assertTrue("event type must be structureChanged " + TableModelReport.printEvent(report.getLastEvent()),
report.isStructureChanged(report.getLastEvent()));
}
});
}
示例5: testInsertUnderCollapsedNode
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; //导入依赖的package包/类
/**
* Issue #247-swingx: update probs with insert node.
* The insert under a collapsed node fires a dataChanged on the table
* which results in the usual total "memory" loss (f.i. selection)
*
* The tree model is after setup is (see the bug report as well):
* root
* childA
* childB
*
* In the view childA is collapsed:
* root
* childA
* @throws InvocationTargetException
* @throws InterruptedException
*
*/
@Test
public void testInsertUnderCollapsedNode() throws InterruptedException, InvocationTargetException {
final DefaultMutableTreeTableNode root = new DefaultMutableTreeTableNode();
final InsertTreeTableModel model = new InsertTreeTableModel(root);
DefaultMutableTreeTableNode childA = model.addChild(root);
final DefaultMutableTreeTableNode childB = model.addChild(childA);
final JXTreeTable treeTable = new JXTreeTable(model);
treeTable.setRootVisible(true);
// sanity...
assertEquals(2, treeTable.getRowCount());
final int selected = 1;
// select childA
treeTable.setRowSelectionInterval(selected, selected);
model.addChild(childB);
// need to invoke - the tableEvent is fired delayed as well
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
int selectedAfterInsert = treeTable.getSelectedRow();
assertEquals(selected, selectedAfterInsert);
}
});
}
示例6: updateModel
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; //导入依赖的package包/类
private synchronized void updateModel() throws NotInitializedException {
DefaultMutableTreeTableNode root = new InformationTreeTableNode(RepositoryInformationPane.ROOT_LABEL);
DefaultMutableTreeTableNode node, leaf;
for (PluginInfo plugin:PluginManager.getInstance().getRepositoryInfo()) {
node = new PluginTreeTableNode(plugin);
for (DependencyInfo dependency:plugin.getListNeeds()) {
leaf = new DependencyTreeTableNode(dependency);
node.add(leaf);
}
root.add(node);
}
this.treeTableModel = new PluginInformationTreeTableModel(root);
this.pluginsTreeTable.setTreeTableModel(this.treeTableModel);
this.pluginsTreeTable.packAll();
this.repaint();
}
示例7: getValueAt
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; //导入依赖的package包/类
@Override
public Object getValueAt(Object node, int column) {
Object value = null;
if ( node instanceof DefaultMutableTreeTableNode ) {
DefaultMutableTreeTableNode mutableNode = (DefaultMutableTreeTableNode)node;
Object o = mutableNode.getUserObject();
if ( o != null && o instanceof String[] ) {
String[] array = (String[])o;
if ( column >= array.length ) {
return "";
} else {
value = array[column];
}
}
}
return value;
}
示例8: addPathsByNodes
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; //导入依赖的package包/类
public void addPathsByNodes(List selectedNodes) {
int num = selectedNodes.size();
TreePath[] tps = new TreePath[num];
for (int i = 0; i < num; i++) {
DefaultMutableTreeTableNode node = (DefaultMutableTreeTableNode) selectedNodes.get(i);
tps[i] = new TreePath(getPathToRoot(node));
}
this.addSelectionPaths(tps);
}
示例9: format
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; //导入依赖的package包/类
@Override
protected void format(CellContext arg0) {
// 从CellContext获取tree中的文字和图标
JTree tree = (JTree) arg0.getComponent();
DefaultMutableTreeTableNode node = (DefaultMutableTreeTableNode) arg0.getValue();
Object obj = node.getUserObject();
if(obj instanceof FieldEntity){
_label.setText(((FieldEntity) obj).getKey());
_checkBox.setSelector((FieldEntity) obj);
}else if(obj instanceof ClassEntity){
_label.setText(((ClassEntity) obj).getClassName());
_checkBox.setSelector((ClassEntity) obj);
}
// _label.setIcon(arg0.getIcon());
// 根据selectionModel中的状态来绘制TristateCheckBox的外观
TreePath path = tree.getPathForRow(arg0.getRow());
if (path != null) {
if (selectionModel.isPathSelected(path, true)) {
_checkBox.setState(Boolean.TRUE);
} else if (selectionModel.isPartiallySelected(path)) {
_checkBox.setState(null); // 注意“部分选中”状态的API
} else {
_checkBox.setState(Boolean.FALSE);
}
}
// 使用BorderLayout布局,依次放置TristateCheckBox和JLabel
rendererComponent.setLayout(new BorderLayout());
rendererComponent.add(_checkBox);
rendererComponent.add(_label, BorderLayout.LINE_END);
}
示例10: getValueAt
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; //导入依赖的package包/类
/**
* 返回在单元格中显示的Object
*/
@Override
public Object getValueAt(Object node, int column) {
Object value = "";
if (node instanceof DefaultMutableTreeTableNode) {
DefaultMutableTreeTableNode mutableNode = (DefaultMutableTreeTableNode) node;
Object o = mutableNode.getUserObject();
if (o != null && o instanceof CellProvider) {
CellProvider cellProvider = (CellProvider) o;
value = cellProvider.getCellTitle(column);
}
}
return value;
}
示例11: setValueAt
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; //导入依赖的package包/类
@Override
public void setValueAt(Object value, Object node, int column) {
super.setValueAt(value, node, column);
if (node instanceof DefaultMutableTreeTableNode) {
DefaultMutableTreeTableNode mutableNode = (DefaultMutableTreeTableNode) node;
Object o = mutableNode.getUserObject();
if (o != null && o instanceof CellProvider) {
CellProvider cellProvider = (CellProvider) o;
cellProvider.setValueAt(column,value.toString());
}
}
}
示例12: createNamedColorTreeTableModel
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; //导入依赖的package包/类
/**
*
* Creates and returns a DefaultTreeModel with a String root and
* children of type NamedColor wrapped into DefaultMutableTreeNodes.
* @return a DefaultTreeModel containing items of type NamedColor.
*/
public static TreeTableModel createNamedColorTreeTableModel() {
final TableModel wrappee = new AncientSwingTeam();
DefaultMutableTreeTableNode root = new DefaultMutableTreeTableNode("Named Colors");
for (int i = 0; i < wrappee.getRowCount(); i++) {
MutableTreeTableNode node = createNamedColorTreeTableNode(wrappee,
i);
root.add(node);
}
return new DefaultTreeTableModel(root, Arrays.asList(new String[] { "Color", "LastName" }));
}
示例13: interactiveTestInsertUnderCollapsedNode
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; //导入依赖的package包/类
/**
* Issue #247-swingx: update probs with insert node.
* The insert under a collapsed node fires a dataChanged on the table
* which results in the usual total "memory" loss (f.i. selection)
* to reproduce: run example, select root's child in both the tree and the
* treetable (left and right view), press the insert button, treetable looses
* selection, tree doesn't (the latter is the correct behaviour)
*
* couldn't reproduce the reported loss of expansion state. Hmmm..
*
*/
public void interactiveTestInsertUnderCollapsedNode() {
final DefaultMutableTreeTableNode root = new DefaultMutableTreeTableNode();
final InsertTreeTableModel model = new InsertTreeTableModel(root);
DefaultMutableTreeTableNode childA = model.addChild(root);
final DefaultMutableTreeTableNode childB = model.addChild(childA);
model.addChild(childB);
DefaultMutableTreeTableNode secondRootChild = model.addChild(root);
model.addChild(secondRootChild);
JXTree tree = new JXTree(model);
final JXTreeTable treeTable = new JXTreeTable(model);
treeTable.addHighlighter(
HighlighterFactory.createSimpleStriping(HighlighterFactory.LINE_PRINTER));
treeTable.setColumnControlVisible(true);
treeTable.setRootVisible(true);
JXFrame frame = wrapWithScrollingInFrame(tree, treeTable, "JXTree vs. JXTreeTable insert node to nested child");
Action insertAction = new AbstractAction("insert node") {
@Override
public void actionPerformed(ActionEvent e) {
model.addChild(childB);
}
};
addAction(frame, insertAction);
addMessage(frame, "insert nested child must not loose selection/expanseion state");
frame.pack();
frame.setVisible(true);
}
示例14: testEmptyModelInitiallyInvisibleRoot
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; //导入依赖的package包/类
/**
* loosely related to Issue #248-swingx: setRootVisible (true) after
* initial rootInvisible didn't show the root.
*
* this here is a sanity test that there is exactly one row, the problem
* is a missing visual update of the table.
*
*/
@Test
public void testEmptyModelInitiallyInvisibleRoot() {
final DefaultMutableTreeTableNode root = new DefaultMutableTreeTableNode();
final InsertTreeTableModel model = new InsertTreeTableModel(root);
final JXTreeTable treeTable = new JXTreeTable(model);
// sanity...
assertFalse(treeTable.isRootVisible());
assertEquals("no rows with invisible root", 0, treeTable.getRowCount());
treeTable.setRootVisible(true);
// sanity...
assertTrue(treeTable.isRootVisible());
assertEquals("one row with visible root", 1, treeTable.getRowCount());
}
示例15: addChild
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; //导入依赖的package包/类
public DefaultMutableTreeTableNode addChild(DefaultMutableTreeTableNode parent) {
DefaultMutableTreeTableNode newNode = new DefaultMutableTreeTableNode("Child");
parent.add(newNode);
modelSupport.fireChildAdded(new TreePath(getPathToRoot(parent)),
parent.getIndex(newNode), newNode);
return newNode;
}