Package com.onpositive.gae.baseviewer

Source Code of com.onpositive.gae.baseviewer.WorkbenchPropertyPage1

package com.onpositive.gae.baseviewer;

import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IInputValidator;
import org.eclipse.jface.dialogs.InputDialog;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TableViewer;
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.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.ui.IWorkbenchPropertyPage;
import org.eclipse.ui.dialogs.PropertyPage;

public class WorkbenchPropertyPage1 extends PropertyPage implements
    IWorkbenchPropertyPage {

  private TableViewer tv;

  public WorkbenchPropertyPage1() {

  }

 
  protected Control createContents(Composite parent) {
    tv = new TableViewer(parent);
    Composite c = new Composite(parent, SWT.NONE);
    GridLayout ll = new GridLayout(2, true);
    ll.marginWidth=0;
    c.setLayout(ll);
    Composite b=new Composite(c, SWT.NONE);
    GridLayout layout = new GridLayout(2,true);
    layout.marginHeight=0;
    layout.marginWidth=0;
    b.setLayout(layout);
    Button add = new Button(b, SWT.NONE);
    add.setLayoutData(GridDataFactory.fillDefaults().create());
    add.setText("Add");
    add.addSelectionListener(new SelectionAdapter() {

     
      public void widgetSelected(SelectionEvent e) {
        InputDialog inputDialog = new InputDialog(getControl()
            .getShell(), "Kind:", "Type new kind here:", "",
            new IInputValidator() {

              public String isValid(String newText) {
                if (newText.trim().length() == 0) {
                  return "Kind may not be empty string";
                }
                return null;
              }

            });
        int open = inputDialog.open();
        if (open == Dialog.OK) {
          tv.add(inputDialog.getValue());
        }
        super.widgetSelected(e);
      }

    });
   
    final Button remove = new Button(b, SWT.NONE);
    remove.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent e) {
        IStructuredSelection ts = (IStructuredSelection) tv
            .getSelection();
        tv.remove(ts.getFirstElement());
      }
    });
    remove.setLayoutData(GridDataFactory.fillDefaults().create());
    remove.setText("Remove");
    remove.setEnabled(false);
    tv.addSelectionChangedListener(new ISelectionChangedListener() {

      public void selectionChanged(SelectionChangedEvent event) {
        remove.setEnabled(!event.getSelection().isEmpty());
      }
    });
    tv.setContentProvider(new ArrayContentProvider());
    try {
      tv.setInput(AnnotationsStorage
          .getKnownKinds((IProject) getElement().getAdapter(
              IProject.class)));
      tv.setLabelProvider(new LabelProvider() {

       
        public Image getImage(Object element) {
          return BaseImages.entityImage;
        }

      });
    } catch (CoreException e) {
      Activator.log(e);
    }
    return tv.getTable();
  }

 
  public boolean performOk() {
    TableItem[] items = tv.getTable().getItems();
    String[] result = new String[items.length];
    for (int a = 0; a < items.length; a++) {
      result[a] = (String) items[a].getData();
    }
    ;
    try {
      AnnotationsStorage.setKnownKinds((IProject) getElement()
          .getAdapter(IProject.class), result);
    } catch (CoreException e) {
      Activator.log(e);
      return false;
    }
    return true;
  }

}
TOP

Related Classes of com.onpositive.gae.baseviewer.WorkbenchPropertyPage1

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.