use of replete.gui.controls.simpletree.NodeSimpleLabel in project n2a by frothga.
the class ParameterTree method filter.
// //////////
// FILTER //
// //////////
public void filter(String text) {
saveState();
if (text.equals("")) {
setModel(origModel);
} else {
text = text.toUpperCase();
List<TNode> found = new ArrayList<TNode>();
search(origModel.getTRoot(), found, text);
if (found.size() == 0) {
TNode nRoot = new TNode();
nRoot.add(new NodeSimpleLabel("<No Results>", ImageUtil.getImage("noresults.gif")));
setModel(new TModel(nRoot));
} else {
TNode nRoot = new TNode();
Map<TNode, TNode> oldNewMap = new HashMap<TNode, TNode>();
for (TNode nFound : found) {
TNode[] path = nFound.getTPathSegments();
TNode nParent = nRoot;
for (TNode nSegment : path) {
if (nSegment == origModel.getRoot() && nParent == nRoot) {
// do nothing
} else if (oldNewMap.containsKey(nSegment)) {
nParent = oldNewMap.get(nSegment);
} else {
Object uSegment = nSegment.getUserObject();
TNode nNew = new TNode(uSegment);
nParent.add(nNew);
nParent = nNew;
oldNewMap.put(nSegment, nNew);
}
}
}
setModel(new TModel(nRoot));
}
}
restoreStateNoFire();
updateUI();
}
use of replete.gui.controls.simpletree.NodeSimpleLabel in project n2a by frothga.
the class FixedParameterSpacePanel method buildDomainTab.
private void buildDomainTab(ParameterDomain domain) {
TNode nRoot = new TNode(new NodeSimpleLabel(domain.getName()));
populate(nRoot, domain);
FilterableParameterTreePanel pnlFilterableTree = new FilterableParameterTreePanel(nRoot);
final ParameterTree treParams = pnlFilterableTree.getTree();
treParams.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseMoved(MouseEvent e) {
TreePath path = treParams.getPathForLocation(e.getX(), e.getY());
if (path == null || ((TNode) path.getLastPathComponent()).getUserObject() instanceof NodeSubdomain) {
treParams.setCursor(Cursor.getDefaultCursor());
} else {
treParams.setCursor(DragCursors.getOpenhandcursor());
}
}
});
treParams.getSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
updateDetailsPanelFromTree(treParams);
}
});
treParams.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() > 1 && treParams.getSelectionCount() != 0) {
List<ParameterBundle> bundles = getSelectedParamsAsBundles(treParams.getSelectionPaths());
if (bundles != null) {
dropIntoGroups(bundles, dropEmphasis);
}
}
}
});
DragSource ds = new DragSource();
ds.createDefaultDragGestureRecognizer(treParams, DnDConstants.ACTION_LINK, this);
int existingIndex = tabParamDomains.indexOfTabByKey(domain.getName());
if (existingIndex != -1) {
tabParamDomains.remove(existingIndex);
}
tabParamDomains.add(domain.getName(), pnlFilterableTree);
int index = tabParamDomains.getTabCount();
tabParamDomains.setIconAt(index - 1, domain.getIcon());
tabParamDomains.setUseBorderAt(index - 1, true);
}
Aggregations