de.tub.tfs.henshin.tggeditor.views.ruleview.RuleGraphicalView.java Source code

Java tutorial

Introduction

Here is the source code for de.tub.tfs.henshin.tggeditor.views.ruleview.RuleGraphicalView.java

Source

/*******************************************************************************
 * Copyright (c) 2010-2015 Henshin developers. All rights reserved. 
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     TU Berlin, University of Luxembourg, SES S.A.
 *******************************************************************************/
package de.tub.tfs.henshin.tggeditor.views.ruleview;

import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.henshin.model.NamedElement;
import org.eclipse.emf.henshin.model.Rule;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.part.IPage;

import de.tub.tfs.henshin.tgg.TGGRule;
import de.tub.tfs.henshin.tgg.interpreter.util.RuleUtil;
import de.tub.tfs.henshin.tggeditor.TreeEditor;
import de.tub.tfs.henshin.tggeditor.actions.create.rule.GenerateBTRuleToolBarAction;
import de.tub.tfs.henshin.tggeditor.actions.create.rule.GenerateCCRuleToolBarAction;
import de.tub.tfs.henshin.tggeditor.actions.create.rule.GenerateFTRuleToolBarAction;
import de.tub.tfs.henshin.tggeditor.actions.create.rule.GenerateITRuleToolBarAction;
import de.tub.tfs.henshin.tggeditor.actions.execution.ExecuteRuleToolBarRuleAction;
import de.tub.tfs.henshin.tggeditor.actions.validate.RuleValidToolBarAction;
import de.tub.tfs.muvitor.ui.MuvitorPage;
import de.tub.tfs.muvitor.ui.MuvitorPageBookView;

/**
 * This is a PageBookView for displaying some model on 
 * an IPage. It is merely a wrapper for the contained
 * {@link MuvitorPage} implementing {@link IPage}. This class
 *  offers to show a customized page in a workbench view. 
 */

public class RuleGraphicalView extends MuvitorPageBookView {

    /**
     * An unique if of this view
     */
    public static final String ID = TreeEditor.RULE_VIEW_ID;

    @Override
    protected String calculatePartName() {
        return "Rule: " + ((NamedElement) getModel()).getName();
    }

    @Override
    protected IPage createPageForModel(EObject forModel) {
        final RuleGraphicalPage page = new RuleGraphicalPage(this);

        IToolBarManager toolBarManager = getViewSite().getActionBars().getToolBarManager();

        boolean addTGGRuleActions = true;
        if (forModel != null && forModel instanceof TGGRule) {
            if (RuleUtil.TGG_RULE.equals(((TGGRule) forModel).getMarkerType()))
                addTGGRuleActions = false;
        }
        if (addTGGRuleActions) {
            toolBarManager.add(new GenerateFTRuleToolBarAction(this, page));
            toolBarManager.add(new GenerateITRuleToolBarAction(this, page));//NEW GERARD
            toolBarManager.add(new GenerateBTRuleToolBarAction(this, page));
            toolBarManager.add(new GenerateCCRuleToolBarAction(this, page));
            toolBarManager.add(new RuleValidToolBarAction(this, page));
            toolBarManager.add(new ExecuteRuleToolBarRuleAction(this, page));
        }

        Display.getDefault().asyncExec(new Runnable() {

            @Override
            public void run() {
                if (((Rule) getModel()).getLhs().getFormula() == null)
                    page.maximiseViewer(1);

            }
        });

        return page;
    }

}