org.jboss.tools.smooks.configuration.editors.SmooksConfigurationFormPage.java Source code

Java tutorial

Introduction

Here is the source code for org.jboss.tools.smooks.configuration.editors.SmooksConfigurationFormPage.java

Source

/*******************************************************************************
 * Copyright (c) 2009 Red Hat, Inc.
 * Distributed under license by Red Hat, Inc. All rights reserved.
 * This program is 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:
 *     Red Hat, Inc. - initial API and implementation
 ******************************************************************************/
package org.jboss.tools.smooks.configuration.editors;

import java.util.Collection;
import java.util.List;

import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.editor.FormPage;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.jboss.tools.smooks.configuration.validate.ISmooksModelValidateListener;
import org.jboss.tools.smooks.editor.ISmooksModelProvider;
import org.jboss.tools.smooks.editor.ISourceSynchronizeListener;

/**
 * @author Dart Peng (dpeng@redhat.com) Date Apr 1, 2009
 */
public class SmooksConfigurationFormPage extends FormPage
        implements ISmooksModelValidateListener, ISourceSynchronizeListener {

    private SmooksMasterDetailBlock masterDetailBlock = null;

    public SmooksConfigurationFormPage(FormEditor editor, String id, String title) {
        super(editor, id, title);
    }

    public SmooksConfigurationFormPage(String id, String title) {
        super(id, title);
    }

    protected String getMainSectionTitle() {
        return null;
    }

    protected String getMainSectionDescription() {
        return null;
    }

    @Override
    protected void createFormContent(IManagedForm managedForm) {
        final ScrolledForm form = managedForm.getForm();
        FormToolkit toolkit = managedForm.getToolkit();
        toolkit.decorateFormHeading(form.getForm());
        setPageTitle(form);
        // create master details UI
        createMasterDetailBlock(managedForm);
        GridLayout gridLayout = new GridLayout();
        gridLayout.marginHeight = 13;
        // gridLayout.numColumns = 2;
        // gridLayout.makeColumnsEqualWidth = true;
        form.getBody().setLayout(gridLayout);
    }

    protected void setPageTitle(ScrolledForm form) {
        String title = getTitle();
        form.setText(title);
    }

    protected SmooksMasterDetailBlock createSmooksMasterDetailsBlock() {
        return new SmooksMasterDetailBlock(getEditor(),
                (AdapterFactoryEditingDomain) ((SmooksMultiFormEditor) getEditor()).getEditingDomain());
    }

    protected void createMasterDetailBlock(IManagedForm managedForm) {
        masterDetailBlock = createSmooksMasterDetailsBlock();
        ViewerFilter[] filters = createViewerFilters();
        masterDetailBlock.setViewerFilters(filters);
        masterDetailBlock.setMainSectionDescription(getMainSectionDescription());
        masterDetailBlock.setMainSectionTitle(getMainSectionTitle());
        masterDetailBlock.setNewSmooksElementTitle(getNewSmooksElementTitle());
        masterDetailBlock.setNewSmooksElementDescription(getNewSmooksElementDescription());
        masterDetailBlock.createContent(managedForm);
    }

    protected String getNewSmooksElementTitle() {
        return null;
    }

    protected String getNewSmooksElementDescription() {
        return null;
    }

    protected ViewerFilter[] createViewerFilters() {
        return new ViewerFilter[] { new TextEObjectModelFilter() };
    }

    //   protected SmooksGraphicsExtType getSmooksGraphicsExtType() {
    //      SmooksGraphicsExtType extType = ((ISmooksModelProvider) getEditor()).getSmooksGraphicsExt();
    //      return extType;
    //   }

    @Override
    public Object getAdapter(Class clazz) {
        if (clazz == ISmooksModelProvider.class) {
            return (ISmooksModelProvider) getEditor();
        }
        return super.getAdapter(clazz);
    }

    public void setSmooksModel(Object model) {
        if (masterDetailBlock != null) {
            masterDetailBlock.setSmooksModel(model);
        }
    }

    protected void showInputDataWizard() {
        //      StructuredDataSelectionWizard wizard = new StructuredDataSelectionWizard();
        //      wizard.setInput(getEditorInput());
        //      wizard.setSite(getEditorSite());
        //      wizard.setForcePreviousAndNextButtons(true);
        //      StructuredDataSelectionWizardDailog dialog = new StructuredDataSelectionWizardDailog(
        //            getEditorSite().getShell(), wizard, getSmooksGraphicsExtType());
        //      if (dialog.show() == Dialog.OK) {
        //         SmooksGraphicsExtType extType = getSmooksGraphicsExtType();
        //         String type = dialog.getType();
        //         String path = dialog.getPath();
        //         Properties pros = dialog.getProperties();
        //         SmooksUIUtils.recordInputDataInfomation(((SmooksMultiFormEditor) getEditor()).getEditingDomain(), null,
        //               extType, type, path, pros);
        //      }
    }

    public void setSelectionToViewer(final Collection<?> collection) {
        if (masterDetailBlock != null && masterDetailBlock.getSmooksTreeViewer() != null) {
            // I don't know if this should be run this deferred
            // because we might have to give the editor a chance to process the
            // viewer update events
            // and hence to update the views first.
            //
            //
            final TreeViewer viewer = masterDetailBlock.getSmooksTreeViewer();
            Runnable runnable = new Runnable() {
                public void run() {
                    // Try to select the items in the current content viewer of
                    // the editor.
                    //
                    if (viewer != null) {
                        viewer.setSelection(new StructuredSelection(collection.toArray()), true);
                    }
                }
            };

            runnable.run();
        }
    }

    public void validateEnd(List<Diagnostic> diagnosticResult) {
        if (masterDetailBlock != null)
            masterDetailBlock.refreshSmooksTreeViewer();
    }

    public void validateStart() {

    }

    //   public void inputTypeChanged(SmooksGraphicsExtType extType) {
    //   }

    public void sourceChange(Object model) {
        this.setSmooksModel(model);
    }

    //   public void graphChanged(SmooksGraphicsExtType extType) {
    //      // TODO Auto-generated method stub
    //
    //   }

    public void graphPropertyChange(EStructuralFeature featre, Object value) {
        // TODO Auto-generated method stub

    }

}