Package tool.editors.cdf

Source Code of tool.editors.cdf.VirtualAttributeDialog

package tool.editors.cdf;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;

import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.UpdateValueStrategy;
import org.eclipse.core.databinding.beans.BeansObservables;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.jface.databinding.swt.SWTObservables;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.wb.swt.ResourceManager;

import tool.model.ToolClass;
import tool.model.ToolComponent;
import tool.model.ToolType;
import tool.model.ToolVirtualAttribute;
import tool.model.validation.ToolNameValidator;
import tool.search.SelectType;

public class VirtualAttributeDialog extends TitleAreaDialog {
  private DataBindingContext m_bindingContext;
  private Text typeText;
  private Text getExpressionText;
  private Text text;
  private ToolVirtualAttribute virtualAttribute;
  protected PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
      this);
  private Button btnCheckButton;
  private Text nameText;
 
  public void addPropertyChangeListener(String propertyName,
      PropertyChangeListener listener) {
    propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
  }

  public void removePropertyChangeListener(PropertyChangeListener listener) {
    propertyChangeSupport.removePropertyChangeListener(listener);
  }
  public static int show(ToolVirtualAttribute attribute){
    Shell shell = Display.getDefault().getActiveShell();
    VirtualAttributeDialog dialog = new VirtualAttributeDialog(shell, attribute);
    return dialog.open();
  }
  private VirtualAttributeDialog(Shell parentShell, ToolVirtualAttribute attribute) {
    this(parentShell);
    setTitleImage(ResourceManager.getPluginImage("Tool", "icons/private_virtual_attribute.gif"));
    setTitle("Virtual Attribute");
    this.virtualAttribute = attribute;
  }

  /**
   * Create the dialog.
   * @param parentShell
   * @wbp.parser.constructor
   */
  public VirtualAttributeDialog(Shell parentShell) {
    super(parentShell);
  }

  /**
   * Create contents of the dialog.
   * @param parent
   */
  @Override
  protected Control createDialogArea(Composite parent) {
    setTitleImage(ResourceManager.getPluginImage("Tool", "icons/private_virtual.gif"));
    setTitle("Virtual Attribute");
    Composite area = (Composite) super.createDialogArea(parent);
    Composite container = new Composite(area, SWT.NONE);
    GridLayout gl_container = new GridLayout(3, false);
    gl_container.horizontalSpacing = 8;
    container.setLayout(gl_container);
    container.setLayoutData(new GridData(GridData.FILL_BOTH));
   
    Label lblName = new Label(container, SWT.NONE);
    lblName.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    lblName.setText("Name:");
   
    nameText = new Text(container, SWT.BORDER);
    nameText.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
   
    btnCheckButton = new Button(container, SWT.CHECK);
    btnCheckButton.setBounds(0, 0, 85, 16);
    btnCheckButton.setText("Public");
   
    Label lblType = new Label(container, SWT.NONE);
    lblType.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    lblType.setText("Type:");
   
    typeText = new Text(container, SWT.BORDER);
    typeText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
   
    Button findTypeButton = new Button(container, SWT.NONE);
    findTypeButton.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent e) {
        String typeName = getVirtualAttribute().getType();
        ToolComponent myClass = (ToolComponent) getVirtualAttribute().getParent();
        ToolComponent typeClass = ToolClass.fetch(myClass.getProject(), typeName);
        ToolType newClass = (ToolType) SelectType.select(myClass, typeClass);
        getVirtualAttribute().setType(newClass.getFullName());
      }
    });
    findTypeButton.setImage(ResourceManager.getPluginImage("Tool", "icons/look_up.gif"));
    findTypeButton.setToolTipText("Find Type");
   
    Label lblGetExpression = new Label(container, SWT.NONE);
    lblGetExpression.setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, false, false, 1, 1));
    lblGetExpression.setText("Get Expression:");
   
    getExpressionText = new Text(container, SWT.BORDER);
    GridData gd_getExpressionText = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1);
    gd_getExpressionText.heightHint = 85;
    getExpressionText.setLayoutData(gd_getExpressionText);
   
    Label lblSetExpression = new Label(container, SWT.NONE);
    lblSetExpression.setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, false, false, 1, 1));
    lblSetExpression.setText("Set Expression:");
   
    text = new Text(container, SWT.BORDER);
    GridData gd_text = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1);
    gd_text.heightHint = 85;
    text.setLayoutData(gd_text);
    new Label(container, SWT.NONE);
    new Label(container, SWT.NONE);
    new Label(container, SWT.NONE);

    return area;
  }

  /**
   * Create contents of the button bar.
   * @param parent
   */
  @Override
  protected void createButtonsForButtonBar(Composite parent) {
    createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL,
        true);
    createButton(parent, IDialogConstants.CANCEL_ID,
        IDialogConstants.CANCEL_LABEL, false);
    m_bindingContext = initDataBindings();
  }

  /**
   * Return the initial size of the dialog.
   */
  @Override
  protected Point getInitialSize() {
    return new Point(457, 378);
  }

  public ToolVirtualAttribute getVirtualAttribute() {
    return virtualAttribute;
  }

  public void setVirtualAttribute(ToolVirtualAttribute virtualAttribute) {
    propertyChangeSupport.firePropertyChange("virtualAttribute",
        this.virtualAttribute, this.virtualAttribute = virtualAttribute);
      m_bindingContext = initDataBindings();
  }
  protected DataBindingContext initDataBindings() {
    DataBindingContext bindingContext = new DataBindingContext();
    //
    IObservableValue btnCheckButtonObserveSelectionObserveWidget = SWTObservables.observeSelection(btnCheckButton);
    IObservableValue virtualAttributePublicObserveValue = BeansObservables.observeValue(virtualAttribute, "public");
    bindingContext.bindValue(btnCheckButtonObserveSelectionObserveWidget, virtualAttributePublicObserveValue, null, null);
    //
    IObservableValue typeTextObserveTextObserveWidget = SWTObservables.observeText(typeText, SWT.Modify);
    IObservableValue virtualAttributeTypeObserveValue = BeansObservables.observeValue(virtualAttribute, "type");
    bindingContext.bindValue(typeTextObserveTextObserveWidget, virtualAttributeTypeObserveValue, null, null);
    //
    IObservableValue getExpressionTextObserveTextObserveWidget = SWTObservables.observeText(getExpressionText, SWT.Modify);
    IObservableValue virtualAttributeGetExpressionObserveValue = BeansObservables.observeValue(virtualAttribute, "getExpression");
    bindingContext.bindValue(getExpressionTextObserveTextObserveWidget, virtualAttributeGetExpressionObserveValue, null, null);
    //
    IObservableValue textObserveTextObserveWidget = SWTObservables.observeText(text, SWT.Modify);
    IObservableValue virtualAttributeSetExpressionObserveValue = BeansObservables.observeValue(virtualAttribute, "setExpression");
    bindingContext.bindValue(textObserveTextObserveWidget, virtualAttributeSetExpressionObserveValue, null, null);
    //
    IObservableValue nameTextObserveTextObserveWidget = SWTObservables.observeText(nameText, SWT.Modify);
    IObservableValue virtualAttributeNameObserveValue = BeansObservables.observeValue(virtualAttribute, "toolName");
    UpdateValueStrategy strategy = new UpdateValueStrategy();
    strategy.setAfterConvertValidator(new ToolNameValidator(nameText));
    bindingContext.bindValue(nameTextObserveTextObserveWidget, virtualAttributeNameObserveValue, strategy, null);
    //
    return bindingContext;
  }
}
TOP

Related Classes of tool.editors.cdf.VirtualAttributeDialog

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.