use of org.knime.workbench.repository.model.Root in project knime-core by knime.
the class NodeDocuGenerator method getCategoryIdentifier.
/*
* Helper to compose the category names/identifier of the super-categories
* and the current one
*/
private static String getCategoryIdentifier(final Category cat) {
IContainerObject parent = cat.getParent();
String identifier = cat.getID();
while (!(parent instanceof Root)) {
identifier = parent.getID() + "." + identifier;
parent = parent.getParent();
}
return identifier;
}
use of org.knime.workbench.repository.model.Root in project knime-core by knime.
the class AbstractRepositoryView method readRepository.
/**
* This method reads the repository contents and sets them as model into the {@link #m_viewer tree view}.
*
* @param parent the parent component of this view
* @param monitor a progress monitor, must not be <code>null</code>
*/
protected void readRepository(final Composite parent, final IProgressMonitor monitor) {
RepositoryManager.INSTANCE.addLoadListener(this);
Root repository = RepositoryManager.INSTANCE.getRoot(monitor);
updateRepositoryView(repository);
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
if (!m_viewer.getControl().isDisposed()) {
parent.setCursor(null);
m_viewer.getControl().setToolTipText(null);
}
}
});
onReadingRepositoryDone();
}
use of org.knime.workbench.repository.model.Root in project knime-core by knime.
the class AbstractRepositoryView method updateRepositoryView.
private void updateRepositoryView(final Root root) {
final Root transformedRepository = transformRepository(root);
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
if (!m_viewer.getControl().isDisposed()) {
m_viewer.getControl().setToolTipText("Loading node repository... " + m_nodeCounter + " nodes found");
if (m_viewer.getInput() != transformedRepository) {
m_viewer.setInput(transformedRepository);
} else {
try {
m_viewer.refresh(transformedRepository);
} catch (ConcurrentModificationException ex) {
// ignore, this may happen if new nodes
// are added while the viewer is updating
}
}
}
}
});
}
use of org.knime.workbench.repository.model.Root in project knime-core by knime.
the class RepositoryViewFilter method doSelect.
/**
* An element is selected if itself, a parent or a
* child contains the query string in its name.
* {@inheritDoc}
*/
@Override
protected boolean doSelect(final Object parentElement, final Object element, final boolean recurse) {
boolean selectThis = false;
// Node Template : Match against name
if (element instanceof AbstractNodeTemplate) {
// check against node name
selectThis = match(((AbstractNodeTemplate) element).getName());
if (element instanceof MetaNodeTemplate) {
// with meta nodes also check the name of the workflow manager
selectThis |= match(((MetaNodeTemplate) element).getManager().getName());
}
if (selectThis) {
return true;
}
// we must also check towards root, as we want to include all
// children of a selected category
IRepositoryObject temp = (IRepositoryObject) parentElement;
while (!(temp instanceof Root)) {
// check parent category, but do *not* recurse !!!!
if (doSelect(temp.getParent(), temp, false)) {
return true;
}
temp = temp.getParent();
}
} else // Category: Match against name and children
if (element instanceof Category) {
// check against node name
selectThis = match(((Category) element).getName());
if (selectThis) {
return true;
}
// check recursively against children, if needed
if (recurse) {
Category category = (Category) element;
IRepositoryObject[] children = category.getChildren();
for (int i = 0; i < children.length; i++) {
// recursively check. return true on first matching child
if (doSelect(category, children[i], true)) {
return true;
}
}
}
}
return false;
}
use of org.knime.workbench.repository.model.Root in project knime-core by knime.
the class FavoriteNodesManager method createTreeModel.
/**
*/
private void createTreeModel() {
String pluginID = FrameworkUtil.getBundle(getClass()).getSymbolicName();
m_root = new Root();
m_root.setSortChildren(false);
m_favNodes = new CopyingCategory(FAV_CAT_ID, FAV_TITLE, pluginID);
m_favNodes.setIcon(ImageRepository.getIconImage(SharedImages.FavoriteNodesFolder));
m_favNodes.setAfterID("");
m_favNodes.setSortChildren(true);
m_root.addChild(m_favNodes);
m_freqNodes = new CopyingCategory("freq", "Most frequently used nodes", pluginID);
m_freqNodes.setIcon(ImageRepository.getIconImage(SharedImages.FavoriteNodesFrequentlyUsed));
m_freqNodes.setAfterID("fav");
m_freqNodes.setSortChildren(false);
m_root.addChild(m_freqNodes);
m_lastNodes = new CopyingCategory("last", "Last used nodes", pluginID);
m_lastNodes.setIcon(ImageRepository.getIconImage(SharedImages.FavoriteNodesLastUsed));
m_lastNodes.setAfterID("freq");
m_lastNodes.setSortChildren(false);
m_root.addChild(m_lastNodes);
loadFavorites();
}
Aggregations