Search in sources :

Example 6 with Root

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;
}
Also used : Root(org.knime.workbench.repository.model.Root) IContainerObject(org.knime.workbench.repository.model.IContainerObject)

Example 7 with Root

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();
}
Also used : Root(org.knime.workbench.repository.model.Root)

Example 8 with Root

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
                    }
                }
            }
        }
    });
}
Also used : ConcurrentModificationException(java.util.ConcurrentModificationException) Root(org.knime.workbench.repository.model.Root)

Example 9 with Root

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;
}
Also used : AbstractNodeTemplate(org.knime.workbench.repository.model.AbstractNodeTemplate) Category(org.knime.workbench.repository.model.Category) Root(org.knime.workbench.repository.model.Root) MetaNodeTemplate(org.knime.workbench.repository.model.MetaNodeTemplate) IRepositoryObject(org.knime.workbench.repository.model.IRepositoryObject)

Example 10 with Root

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();
}
Also used : Root(org.knime.workbench.repository.model.Root)

Aggregations

Root (org.knime.workbench.repository.model.Root)13 Category (org.knime.workbench.repository.model.Category)7 IRepositoryObject (org.knime.workbench.repository.model.IRepositoryObject)6 MetaNodeTemplate (org.knime.workbench.repository.model.MetaNodeTemplate)5 NodeTemplate (org.knime.workbench.repository.model.NodeTemplate)4 IConfigurationElement (org.eclipse.core.runtime.IConfigurationElement)3 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)3 IContainerObject (org.knime.workbench.repository.model.IContainerObject)3 ArrayList (java.util.ArrayList)2 Arrays (java.util.Arrays)2 Collection (java.util.Collection)2 Collections (java.util.Collections)2 Comparator (java.util.Comparator)2 HashMap (java.util.HashMap)2 Iterator (java.util.Iterator)2 List (java.util.List)2 Map (java.util.Map)2 CopyOnWriteArrayList (java.util.concurrent.CopyOnWriteArrayList)2 Stream (java.util.stream.Stream)2 IExtension (org.eclipse.core.runtime.IExtension)2