Package tool.editors.plan

Source Code of tool.editors.plan.ProjectEditor

package tool.editors.plan;

import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.beans.BeansObservables;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.databinding.swt.SWTObservables;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ITreeSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.ExpandBar;
import org.eclipse.swt.widgets.ExpandItem;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Spinner;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.editor.FormPage;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.wb.swt.ResourceManager;

import tool.editors.cdf.ConstantDialog;
import tool.model.ToolConstant;
import tool.model.ToolPlan;
import tool.model.grammar.IErrorReporter;
import tool.navigator.common.LabelProvider;
import tool.navigator.prx.ContentProvider;

public class ProjectEditor extends FormPage {
  private DataBindingContext m_bindingContext;
  public static final String ID = "tool.editors.plan.ProjectEditor";
  private boolean dirty = false;
  protected IFile file;
  protected IErrorReporter model;
  private Text nameText;
  private Text libraryNameText;
  private Text txtStartclass;
  private Text txtStartmethod;
  private TreeViewer constantsTreeViewer;
  private ExpandItem constantsExpanditem;
  private TreeViewer supplierPlanTreeViewer;
  private Button btnCheckButton;
  private Button btnMultithreaded;
  private Button btnInternal;
  private Combo combo;
  private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
 
  public ProjectEditor(FormEditor editor, String id, String title) {
    super(editor, id, title);
    setTitleImage(ResourceManager.getPluginImage("Tool", "icons/package.gif"));
   
  }
  public ProjectEditor(String id, String title) {
    super(id, title);
    setTitleImage(ResourceManager.getPluginImage("Tool", "icons/package.gif"));
  }
    public ProjectEditor(){
      this(ID, "Project");
      setTitleImage(ResourceManager.getPluginImage("Tool", "icons/package.gif"));
    }

  @Override
  public void createPartControl(Composite parent) {
    parent.setLayout(new FillLayout(SWT.VERTICAL));
   
    ExpandBar expandBar = new ExpandBar(parent, SWT.NONE);
   
    ExpandItem projectPropertiesExpanditem = new ExpandItem(expandBar, SWT.NONE);
    projectPropertiesExpanditem.setImage(ResourceManager.getPluginImage("Tool", "icons/package.gif"));
    projectPropertiesExpanditem.setExpanded(true);
    projectPropertiesExpanditem.setText("Project Properties");
   
    Composite composite = new Composite(expandBar, SWT.NONE);
    projectPropertiesExpanditem.setControl(composite);
    composite.setLayout(new GridLayout(2, false));
   
    Label lblName = new Label(composite, SWT.NONE);
    lblName.setAlignment(SWT.RIGHT);
    lblName.setSize(594, 59);
    lblName.setText("Name");
   
    nameText = new Text(composite, SWT.BORDER);
    GridData gd_nameText = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gd_nameText.widthHint = 334;
    nameText.setLayoutData(gd_nameText);
    nameText.setSize(594, 67);
    nameText.setEditable(false);
   
    Label lblLibraryName = new Label(composite, SWT.NONE);
    lblLibraryName.setAlignment(SWT.RIGHT);
    lblLibraryName.setSize(594, 79);
    lblLibraryName.setText("Library Name");
   
    libraryNameText = new Text(composite, SWT.BORDER);
    GridData gd_libraryNameText = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gd_libraryNameText.widthHint = 95;
    libraryNameText.setLayoutData(gd_libraryNameText);
    libraryNameText.setSize(594, 94);
   
    Label lblType = new Label(composite, SWT.NONE);
    lblType.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    lblType.setText("Type");
   
    combo = new Combo(composite, SWT.NONE);
    combo.setVisibleItemCount(3);
    combo.setItems(new String[] {"APPLICATION", "LIBRARY", "SERVER"});
    GridData gd_combo = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gd_combo.widthHint = 198;
    combo.setLayoutData(gd_combo);
    new Label(composite, SWT.NONE);
   
    btnCheckButton = new Button(composite, SWT.CHECK);
    btnCheckButton.setSize(594, 118);
    btnCheckButton.setText("Restricted Availability");
    new Label(composite, SWT.NONE);
   
    btnMultithreaded = new Button(composite, SWT.CHECK);
    btnMultithreaded.setText("Multithreaded");
    new Label(composite, SWT.NONE);
   
    btnInternal = new Button(composite, SWT.CHECK);
    btnInternal.setText("Internal");
   
    Label lblCompatibilityLevel = new Label(composite, SWT.NONE);
    lblCompatibilityLevel.setSize(594, 158);
    lblCompatibilityLevel.setText("Compatibility Level");
   
    Spinner compatabilitySpinner = new Spinner(composite, SWT.BORDER);
    GridData gd_compatabilitySpinner = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gd_compatabilitySpinner.widthHint = 37;
    compatabilitySpinner.setLayoutData(gd_compatabilitySpinner);
   
    Label lblStart = new Label(composite, SWT.NONE);
    lblStart.setText("Start");
    new Label(composite, SWT.NONE);
   
    Label lblStartClass = new Label(composite, SWT.NONE);
    lblStartClass.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    lblStartClass.setBounds(0, 0, 49, 13);
    lblStartClass.setText("Class");
   
    txtStartclass = new Text(composite, SWT.BORDER);
    GridData gd_txtStartclass = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gd_txtStartclass.widthHint = 350;
    txtStartclass.setLayoutData(gd_txtStartclass);
   
    Label lblStartMethod = new Label(composite, SWT.NONE);
    lblStartMethod.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    lblStartMethod.setText("Method");
   
    txtStartmethod = new Text(composite, SWT.BORDER);
    GridData gd_txtStartmethod = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gd_txtStartmethod.widthHint = 350;
    txtStartmethod.setLayoutData(gd_txtStartmethod);
    projectPropertiesExpanditem.setHeight(projectPropertiesExpanditem.getControl().computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
   
    ExpandItem supplierPlansExpanditem = new ExpandItem(expandBar, SWT.NONE);
    supplierPlansExpanditem.setExpanded(true);
    supplierPlansExpanditem.setImage(ResourceManager.getPluginImage("Tool", "icons/package.gif"));
    supplierPlansExpanditem.setText("Supplier Plans");
   
    Composite composite_1 = new Composite(expandBar, SWT.NONE);
    supplierPlansExpanditem.setControl(composite_1);
   
    Button editSuppButton = new Button(composite_1, SWT.NONE);
    editSuppButton.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent e) {
//        TwoPaneElementSelector elementSelector = new TwoPaneElementSelector(getShell(), new LabelProvider(), new LabelProvider());
//        elementSelector.setTitle("SupplierPlans");
//        elementSelector.setElements(model.getSupplierPlansAsList().toArray());
//        elementSelector.setLowerListLabel("Lower List");
//        elementSelector.setUpperListLabel("Upper List");
//        elementSelector.setMultipleSelection(true);
//        //elementSelector.setInitialSelections(new String[] {"One", "Two"});
//        elementSelector.open();

//        SupplierPlanDialog.show(model.getSupplierPlansAsList(), new ArrayList<ToolPlan>());
      }
    });
    editSuppButton.setBounds(0, 0, 94, 30);
    formToolkit.adapt(editSuppButton, true, true);
    editSuppButton.setText("Edit");
    composite_1.setLayout(new GridLayout(2, false));
   
    supplierPlanTreeViewer = new TreeViewer(composite_1, SWT.BORDER);
    Tree supplierPlanTree = supplierPlanTreeViewer.getTree();
    supplierPlanTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    new Label(composite_1, SWT.NONE);
    new Label(composite_1, SWT.NONE);
    supplierPlanTreeViewer.setContentProvider(new ContentProvider(ContentProvider.SUPPLIERS));
    supplierPlanTreeViewer.setLabelProvider(new LabelProvider());
    supplierPlansExpanditem.setHeight(supplierPlansExpanditem.getControl().computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
   
    constantsExpanditem = new ExpandItem(expandBar, SWT.NONE);
    constantsExpanditem.setImage(ResourceManager.getPluginImage("Tool", "icons/constant.gif"));
    constantsExpanditem.setText("Constants");
   
    Composite composite_2 = new Composite(expandBar, SWT.NONE);
    constantsExpanditem.setControl(composite_2);
    composite_2.setLayout(new GridLayout(1, false));
   
    constantsTreeViewer = new TreeViewer(composite_2, SWT.BORDER);
    constantsTreeViewer.addDoubleClickListener(new IDoubleClickListener() {
      public void doubleClick(DoubleClickEvent event) {
        ITreeSelection selection = (ITreeSelection)event.getSelection();
        ToolConstant constant = (ToolConstant)selection.getFirstElement();
        ConstantDialog.show(constant);
      }
    });
    constantsTreeViewer.setAutoExpandLevel(1);
    Tree constantsTree = constantsTreeViewer.getTree();
    GridData gd_constantsTree = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
    gd_constantsTree.minimumHeight = 300;
    constantsTree.setLayoutData(gd_constantsTree);
    constantsTreeViewer.setContentProvider(new ContentProvider(ContentProvider.CONSTANTS));
    constantsTreeViewer.setLabelProvider(new LabelProvider());
    constantsExpanditem.setHeight(constantsExpanditem.getControl().computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
    if (this.model != null){
      bind();
    }
    m_bindingContext = initDataBindings();
  }
  private void bind() {
    m_bindingContext = initDataBindings();
    constantsTreeViewer.setInput(null);
    supplierPlanTreeViewer.setInput(null);
    constantsTreeViewer.setInput(this.model);
    supplierPlanTreeViewer.setInput(this.model);
    this.dirty = false;
   
  }
  public IErrorReporter getModel() {
    return model;
  }
  public void setModel(IErrorReporter model) {
    if (m_bindingContext != null){
      m_bindingContext.dispose();
      m_bindingContext = null;
    }
   
    this.model = model;
    if (this.model != null && nameText != null){
      bind();
    }
  }
  @Override
  public boolean isDirty() {
    return this.dirty;
  }
 
  public void init(IEditorSite site, IEditorInput editorInput) {
    super.init(site, editorInput);
    IFileEditorInput ifei = (IFileEditorInput)editorInput;
    IFile modelFile = ifei.getFile();
    ToolPlan plan = ToolPlan.getInstance(modelFile);
    setPartName(plan.getToolName());
    this.setModel(plan);
  }
    @Override
    public Image getTitleImage() {
      return ResourceManager.getPluginImage("Tool", "icons/package.gif");
    }
  protected DataBindingContext initDataBindings() {
    DataBindingContext bindingContext = new DataBindingContext();
    //
    IObservableValue nameTextObserveTextObserveWidget = SWTObservables.observeText(nameText, SWT.Modify);
    IObservableValue modelNameObserveValue = BeansObservables.observeValue(model, "toolName");
    bindingContext.bindValue(nameTextObserveTextObserveWidget, modelNameObserveValue, null, null);
    //
    IObservableValue libraryNameTextObserveTextObserveWidget = SWTObservables.observeText(libraryNameText, SWT.Modify);
    IObservableValue modelLibraryNameObserveValue = BeansObservables.observeValue(model, "libraryName");
    bindingContext.bindValue(libraryNameTextObserveTextObserveWidget, modelLibraryNameObserveValue, null, null);
    //
    IObservableValue txtStartclassObserveTextObserveWidget = SWTObservables.observeText(txtStartclass, SWT.Modify);
    IObservableValue modelStartClassObserveValue = BeansObservables.observeValue(model, "startClass");
    bindingContext.bindValue(txtStartclassObserveTextObserveWidget, modelStartClassObserveValue, null, null);
    //
    IObservableValue txtStartmethodObserveTextObserveWidget = SWTObservables.observeText(txtStartmethod, SWT.Modify);
    IObservableValue modelStartMethodObserveValue = BeansObservables.observeValue(model, "startMethod");
    bindingContext.bindValue(txtStartmethodObserveTextObserveWidget, modelStartMethodObserveValue, null, null);
    //
    IObservableValue btnCheckButtonObserveSelectionObserveWidget = SWTObservables.observeSelection(btnCheckButton);
    IObservableValue modelRestrictedObserveValue = BeansObservables.observeValue(model, "restricted");
    bindingContext.bindValue(btnCheckButtonObserveSelectionObserveWidget, modelRestrictedObserveValue, null, null);
    //
    IObservableValue btnMultithreadedObserveSelectionObserveWidget = SWTObservables.observeSelection(btnMultithreaded);
    IObservableValue modelMultiThreadedObserveValue = BeansObservables.observeValue(model, "multiThreaded");
    bindingContext.bindValue(btnMultithreadedObserveSelectionObserveWidget, modelMultiThreadedObserveValue, null, null);
    //
    IObservableValue btnInternalObserveSelectionObserveWidget = SWTObservables.observeSelection(btnInternal);
    IObservableValue modelInternalObserveValue = BeansObservables.observeValue(model, "internal");
    bindingContext.bindValue(btnInternalObserveSelectionObserveWidget, modelInternalObserveValue, null, null);
    //
    IObservableValue comboObserveSelectionObserveWidget = SWTObservables.observeSelection(combo);
    IObservableValue modelProjectTypeObserveValue = BeansObservables.observeValue(model, "projectType");
    bindingContext.bindValue(comboObserveSelectionObserveWidget, modelProjectTypeObserveValue, null, null);
    //
    return bindingContext;
  }
}
TOP

Related Classes of tool.editors.plan.ProjectEditor

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.