Package com.onpositive.appwrench.buildpath

Source Code of com.onpositive.appwrench.buildpath.BuildPathPropertyPage

package com.onpositive.appwrench.buildpath;

import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.swt.SWT;
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.ui.IWorkbenchPropertyPage;
import org.eclipse.ui.dialogs.PropertyPage;

public class BuildPathPropertyPage extends PropertyPage implements
    IWorkbenchPropertyPage {

  private Button b;

  public BuildPathPropertyPage() {
  }

  protected Control createContents(Composite parent) {
    Composite h=new Composite(parent, SWT.NONE);
    h.setLayout(new GridLayout(1,false));
    b = new Button(h, SWT.CHECK);
    b.setText("Pack referenced Java projects to lib folder");
    IProject nq = (IProject) getElement();
    try {
      String persistentProperty = nq.getPersistentProperty(Activator.PACK_REFERENCED);
      if (persistentProperty!=null){
      b.setSelection(Boolean.parseBoolean(persistentProperty));
      }
    } catch (CoreException e) {
      throw new IllegalStateException();
    }
    return h;
  }

  public boolean performOk() {
    final IProject nq = (IProject) getElement();
    try {     
      String persistentProperty = nq.getPersistentProperty(Activator.PACK_REFERENCED);
      if (persistentProperty==null){
        persistentProperty="";
      }
      boolean selection = b.getSelection();
      String value = ""
          + selection;
      nq.setPersistentProperty(Activator.PACK_REFERENCED, value);
      if (!persistentProperty.equals(value)){
        if (selection){
        Job b=new Job("Build"){

          @Override
          protected IStatus run(IProgressMonitor monitor) {
            try {
              nq.build(IncrementalProjectBuilder.FULL_BUILD, monitor);
            } catch (CoreException e) {
              return e.getStatus();
            }
            return Status.OK_STATUS;
          }
         
        };
        b.schedule();
        }
      }
    } catch (CoreException e) {
      throw new IllegalStateException(e);
    }
    return super.performOk();
  }

}
TOP

Related Classes of com.onpositive.appwrench.buildpath.BuildPathPropertyPage

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.