Package org.drools.eclipse.flow.ruleflow.editor

Source Code of org.drools.eclipse.flow.ruleflow.editor.RuleFlowPaletteFactory

/*
* Copyright 2005 JBoss Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.drools.eclipse.flow.ruleflow.editor;

import java.util.ArrayList;
import java.util.List;

import org.drools.eclipse.DroolsEclipsePlugin;
import org.drools.eclipse.flow.ruleflow.skin.SkinManager;
import org.drools.eclipse.flow.ruleflow.skin.SkinProvider;
import org.drools.eclipse.preferences.IDroolsConstants;
import org.eclipse.gef.palette.MarqueeToolEntry;
import org.eclipse.gef.palette.PaletteContainer;
import org.eclipse.gef.palette.PaletteDrawer;
import org.eclipse.gef.palette.PaletteEntry;
import org.eclipse.gef.palette.PaletteGroup;
import org.eclipse.gef.palette.PaletteRoot;
import org.eclipse.gef.palette.SelectionToolEntry;
import org.eclipse.gef.palette.ToolEntry;

/**
* Factory for creating a RuleFlow palette.
*/
public class RuleFlowPaletteFactory {

    public static PaletteRoot createPalette() {
        PaletteRoot flowPalette = new PaletteRoot();
        flowPalette.addAll(createCategories(flowPalette));
        return flowPalette;
    }
   
    private static List<PaletteEntry> createCategories(PaletteRoot root) {
        List<PaletteEntry> categories = new ArrayList<PaletteEntry>();
        categories.add(createControlGroup(root));
        String skin = DroolsEclipsePlugin.getDefault().getPreferenceStore().getString(IDroolsConstants.SKIN);
        SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(skin);
        categories.add(skinProvider.createComponentsDrawer());
        String flowNodes = DroolsEclipsePlugin.getDefault().getPluginPreferences().getString(IDroolsConstants.FLOW_NODES);
        if (flowNodes.charAt(12) == '1') {
            categories.add(createWorkNodesDrawer(skinProvider.getWorkItemsName()));
        }
        return categories;
    }
   
    private static PaletteContainer createWorkNodesDrawer(String name) {

        PaletteDrawer drawer = new PaletteDrawer(name, null);

//        List entries = new ArrayList();
//
//        for (Iterator iterator = WorkItemDefinitions.getWorkDefinitions().iterator(); iterator.hasNext(); ) {
//            final WorkDefinition workDefinition = (WorkDefinition) iterator.next();
//            final String label;
//            String description = workDefinition.getName();
//            String icon = null;
//            if (workDefinition instanceof WorkDefinitionExtension) {
//                WorkDefinitionExtension extension = (WorkDefinitionExtension) workDefinition;
//                label = extension.getDisplayName();
//                description = extension.getExplanationText();
//                icon = extension.getIcon();
//            } else {
//                label = workDefinition.getName();
//            }
//           
//            CombinedTemplateCreationEntry combined = new CombinedTemplateCreationEntry(
//                label,
//                description,
//                WorkItemWrapper.class,
//                new SimpleFactory(WorkItemWrapper.class) {
//                    public Object getNewObject() {
//                        WorkItemWrapper taskWrapper = (WorkItemWrapper) super.getNewObject();
//                        taskWrapper.setName(label);
//                        taskWrapper.getWorkItemNode().setName(label);
//                        taskWrapper.getWorkItemNode().setWork(new WorkImpl());
//                        taskWrapper.getWorkItemNode().getWork().setName(workDefinition.getName());
//                        return taskWrapper;
//                    }
//                },
//                ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry(icon == null? "icons/action.gif" : icon)),
//                ImageDescriptor.createFromURL(DroolsEclipsePlugin.getDefault().getBundle().getEntry(icon == null? "icons/action.gif" : icon))
//            );
//            entries.add(combined);
//        }
//                                       
//        drawer.addAll(entries);
        return drawer;
    }
   
    private static PaletteContainer createControlGroup(PaletteRoot root) {
        PaletteGroup controlGroup = new PaletteGroup("Control Group");

        List<PaletteEntry> entries = new ArrayList<PaletteEntry>();

        ToolEntry tool = new SelectionToolEntry();
        entries.add(tool);
        root.setDefaultEntry(tool);

        tool = new MarqueeToolEntry();
        entries.add(tool);
       
        String skin = DroolsEclipsePlugin.getDefault().getPreferenceStore().getString(IDroolsConstants.SKIN);
        SkinProvider skinProvider = SkinManager.getInstance().getSkinProvider(skin);
        entries.add(skinProvider.createConnectionEntry());
       
        controlGroup.addAll(entries);
        return controlGroup;
    }
}
TOP

Related Classes of org.drools.eclipse.flow.ruleflow.editor.RuleFlowPaletteFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.