Package org.drools.guvnor.client.ruleeditor

Source Code of org.drools.guvnor.client.ruleeditor.RuleViewerWrapper

/*
* 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.guvnor.client.ruleeditor;

import org.drools.guvnor.client.common.GenericCallback;
import org.drools.guvnor.client.common.LoadingPopup;
import org.drools.guvnor.client.messages.Constants;
import org.drools.guvnor.client.packages.ArtifactEditor;
import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
import org.drools.guvnor.client.rpc.RuleAsset;
import org.drools.guvnor.client.ruleeditor.toolbar.ActionToolbar;
import org.drools.guvnor.client.ruleeditor.toolbar.ActionToolbarButtonsConfigurationProvider;
import org.drools.guvnor.client.rulelist.OpenItemCommand;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.TabPanel;
import com.google.gwt.user.client.ui.VerticalPanel;

/**
* The main layout parent/controller the rule viewer.
*/
public class RuleViewerWrapper extends GuvnorEditor {
    private Constants constants = GWT.create(Constants.class);

    private ArtifactEditor artifactEditor;
    private RuleViewer ruleViewer;
    private ActionToolbar actionToolBar;
    private RuleAsset asset;
    private boolean isHistoricalReadOnly = false;
    private final RuleViewerSettings ruleViewerSettings;
    private final OpenItemCommand openItemCommand;
    private Command closeCommand;
    private Command archiveCommand;
    private Command checkedInCommand;

    ActionToolbarButtonsConfigurationProvider actionToolbarButtonsConfigurationProvider;

    VerticalPanel layout = new VerticalPanel();

    public RuleViewerWrapper(
            RuleAsset asset,
            final OpenItemCommand openItemCommand,
            final Command closeCommand,
            final Command checkedInCommand,
            final Command archiveCommand) {
        this(asset, openItemCommand, closeCommand, checkedInCommand,
                archiveCommand, false, null, null);
    }

    public RuleViewerWrapper(
            RuleAsset asset,
            final OpenItemCommand event,
            final Command closeCommand,
            final Command checkedInCommand,
            final Command archiveCommand,
            boolean isHistoricalReadOnly,
            ActionToolbarButtonsConfigurationProvider actionToolbarButtonsConfigurationProvider,
            RuleViewerSettings ruleViewerSettings) {
        this.asset = asset;
        this.isHistoricalReadOnly = isHistoricalReadOnly;
        this.openItemCommand = event;
        this.ruleViewerSettings = ruleViewerSettings;
        this.closeCommand = closeCommand;
        this.checkedInCommand = checkedInCommand;
        this.archiveCommand = archiveCommand;

        initWidget(layout);
        render();
        setWidth("100%");
    }

    private void render() {
        this.artifactEditor = new ArtifactEditor(
                asset,
                this.isHistoricalReadOnly,
                new Command() {
                    public void execute() {
                        refresh();
                    }
                },
                this.openItemCommand,
                this.closeCommand);

        this.ruleViewer = new RuleViewer(
                asset,
                this.openItemCommand,
                this.closeCommand,
                this.checkedInCommand,
                this.archiveCommand,
                new Command() {
                    public void execute() {
                        refresh();
                    }
                },
                this.isHistoricalReadOnly,
                actionToolbarButtonsConfigurationProvider,
                ruleViewerSettings);
        this.actionToolBar = this.ruleViewer.getActionToolbar();

        layout.clear();
        layout.add(this.actionToolBar);

        TabPanel tPanel = new TabPanel();
        tPanel.setWidth("100%");

        ScrollPanel pnl = new ScrollPanel();
        pnl.add(this.artifactEditor);
        tPanel.add(pnl, "Attributes");
        // tPanel.selectTab(0);

        pnl = new ScrollPanel();
        // pnl1.setWidth("100%");
        pnl.add(this.ruleViewer);
        tPanel.add(pnl, "Edit");
        tPanel.selectTab(1);

        layout.add(tPanel);
    }

    public void refresh() {
        LoadingPopup.showMessage(constants.RefreshingItem());
        RepositoryServiceFactory.getAssetService().loadRuleAsset(asset.uuid,
                new GenericCallback<RuleAsset>() {
                    public void onSuccess(RuleAsset a) {
                        asset = a;
                        render();
                        LoadingPopup.close();
                    }
                });
    }
}
TOP

Related Classes of org.drools.guvnor.client.ruleeditor.RuleViewerWrapper

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.