Search in sources :

Example 11 with Root

use of org.knime.workbench.repository.model.Root in project knime-core by knime.

the class FavoritesView method createPartControl.

/**
 * {@inheritDoc}
 */
@Override
public void createPartControl(final Composite parent) {
    m_viewer = new TreeViewer(parent, SWT.SINGLE | SWT.V_SCROLL);
    this.getSite().setSelectionProvider(m_viewer);
    Transfer[] transfers = new Transfer[] { LocalSelectionTransfer.getTransfer() };
    m_viewer.addDragSupport(DND.DROP_COPY | DND.DROP_MOVE, transfers, new FavoriteNodesDragSource(this));
    m_viewer.addDropSupport(DND.DROP_COPY, transfers, new FavoriteNodesDropTarget(this));
    m_viewer.setLabelProvider(new RepositoryLabelProvider());
    m_viewer.setContentProvider(new RepositoryContentProvider());
    // no sorting
    m_viewer.setComparator(null);
    m_viewer.setInput("Loading favorite nodes...");
    Job treeUpdater = new KNIMEJob("Favorite Nodes Loader", FrameworkUtil.getBundle(getClass())) {

        @Override
        protected IStatus run(final IProgressMonitor monitor) {
            final Root root = FavoriteNodesManager.getInstance().getRoot();
            final Object category = root.getChildByID(FavoriteNodesManager.FAV_CAT_ID, false);
            if (monitor.isCanceled()) {
                return Status.CANCEL_STATUS;
            } else {
                Display.getDefault().asyncExec(new Runnable() {

                    @Override
                    public void run() {
                        if (!parent.isDisposed()) {
                            m_viewer.setInput(root);
                            m_viewer.expandToLevel(category, 1);
                        }
                    }
                });
            }
            return Status.OK_STATUS;
        }
    };
    treeUpdater.setSystem(true);
    treeUpdater.schedule();
    NodeUsageRegistry.addNodeUsageListener(FavoritesView.this);
    hookDoubleClickAction();
}
Also used : Root(org.knime.workbench.repository.model.Root) AbstractTreeViewer(org.eclipse.jface.viewers.AbstractTreeViewer) TreeViewer(org.eclipse.jface.viewers.TreeViewer) RepositoryLabelProvider(org.knime.workbench.repository.view.RepositoryLabelProvider) KNIMEJob(org.knime.core.util.KNIMEJob) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) RepositoryContentProvider(org.knime.workbench.repository.view.RepositoryContentProvider) LocalSelectionTransfer(org.eclipse.jface.util.LocalSelectionTransfer) Transfer(org.eclipse.swt.dnd.Transfer) KNIMEJob(org.knime.core.util.KNIMEJob) Job(org.eclipse.core.runtime.jobs.Job)

Example 12 with Root

use of org.knime.workbench.repository.model.Root in project knime-core by knime.

the class NodeDescriptionConverter method buildDocumentationFor.

/**
 * Gets the {@link RepositoryManager} and transforms all NodeDescriptions
 * into HTML files, which are placed into the roots HTML directory.
 *
 * @param pluginId the id of the plugin for which the help files should be
 *            generated
 * @param destinationDir directory, where the created/modified files should
 *            be written to. If <code>null</code> they are written directly
 *            into the plugin's directory.
 * @throws Exception if something goes wrong
 */
public synchronized void buildDocumentationFor(final String pluginId, final File destinationDir) throws Exception {
    final Root root = RepositoryManager.INSTANCE.getRoot();
    if (m_monitor != null) {
        Display d = Display.getDefault();
        d.syncExec(new Runnable() {

            @Override
            public void run() {
                if (m_monitor.isCanceled()) {
                    m_canceled = true;
                    return;
                }
                if (m_first) {
                    m_monitor.beginTask("Processing " + m_pluginID, m_nrPlugins * root.getChildren().length);
                    m_first = false;
                } else {
                    m_monitor.subTask("Processing " + m_pluginID);
                }
            }
        });
    }
    if (m_canceled) {
        return;
    }
    m_pluginID = pluginId;
    if (destinationDir == null) {
        m_destinationDir = getPluginDir();
    } else {
        m_destinationDir = destinationDir;
    }
    File nodesDir = new File(m_destinationDir, HTML_DIR + File.separator + NODES_DIR);
    if (!nodesDir.exists() && !nodesDir.mkdirs()) {
        throw new IOException("Could not create directory '" + nodesDir + "'");
    }
    File tocsDir = new File(m_destinationDir, TOC_DIR);
    if (!tocsDir.exists() && !tocsDir.mkdirs()) {
        throw new IOException("Could not create directory '" + tocsDir + "'");
    }
    parsePluginXML();
    if (m_dialog != null) {
        m_dialog.setCancelable(false);
    }
    // processing
    processAll(root.getChildren(), null);
    // at the end -> persist plugin.xml
    Document doc = m_pluginXML;
    Source src = new DOMSource(doc);
    File f = new File(m_destinationDir, m_isFragment ? "fragment.xml" : "plugin.xml");
    Result streamResult = new StreamResult(f);
    TransformerFactory tf = TransformerFactory.newInstance();
    Transformer serializer = tf.newTransformer();
    serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
    serializer.setOutputProperty(OutputKeys.INDENT, "yes");
    serializer.transform(src, streamResult);
    // at the end add the two dependencies to the manifest file
    // org.eclipse.help, org.eclipse.help.ui
    updateManifest();
}
Also used : DOMSource(javax.xml.transform.dom.DOMSource) TransformerFactory(javax.xml.transform.TransformerFactory) Transformer(javax.xml.transform.Transformer) Root(org.knime.workbench.repository.model.Root) StreamResult(javax.xml.transform.stream.StreamResult) IOException(java.io.IOException) Document(org.w3c.dom.Document) DOMSource(javax.xml.transform.dom.DOMSource) Source(javax.xml.transform.Source) StreamResult(javax.xml.transform.stream.StreamResult) Result(javax.xml.transform.Result) File(java.io.File) Display(org.eclipse.swt.widgets.Display)

Example 13 with Root

use of org.knime.workbench.repository.model.Root in project knime-core by knime.

the class NodeDescriptionConverter method processAll.

private boolean processAll(final IRepositoryObject[] elements, final Document nodeToc) throws Exception {
    boolean nodeCreated = false;
    for (IRepositoryObject o : elements) {
        if (o instanceof Category) {
            Category c = (Category) o;
            if (c.getParent() instanceof Root && m_monitor != null) {
                Display d = Display.getDefault();
                d.asyncExec(new Runnable() {

                    @Override
                    public void run() {
                        m_monitor.worked(2);
                    }
                });
            }
            // create toc file
            Document topicFile = createNodeTocFile(c);
            boolean hasNodes = processAll(((Category) o).getChildren(), topicFile);
            if (c.getContributingPlugin().equals(m_pluginID)) {
                writeCategoryTocFile(c);
            }
            if (hasNodes) {
                // write toc file
                writeNodeTocFile(topicFile, fileName(getFullPath(c) + NODES));
                writeTocToPluginXML(c, true);
            }
        // TODO: why is nodeToc null?
        } else if (o instanceof NodeTemplate && nodeToc != null) {
            nodeCreated |= processNode((NodeTemplate) o, nodeToc);
        } else if (o instanceof MetaNodeTemplate && nodeToc != null) {
            nodeCreated |= processMetaNode((MetaNodeTemplate) o, nodeToc);
        }
    }
    return nodeCreated;
}
Also used : Category(org.knime.workbench.repository.model.Category) NodeTemplate(org.knime.workbench.repository.model.NodeTemplate) MetaNodeTemplate(org.knime.workbench.repository.model.MetaNodeTemplate) Root(org.knime.workbench.repository.model.Root) MetaNodeTemplate(org.knime.workbench.repository.model.MetaNodeTemplate) Document(org.w3c.dom.Document) IRepositoryObject(org.knime.workbench.repository.model.IRepositoryObject) Display(org.eclipse.swt.widgets.Display)

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