Package OntoUML.diagram.application

Source Code of OntoUML.diagram.application.WizardNewFileCreationPage

package OntoUML.diagram.application;

import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
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.FileDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;

/**
* @generated
*/
public class WizardNewFileCreationPage extends WizardPage {

  /**
   * @generated
   */
  private final IStructuredSelection currentSelection;

  /**
   * @generated
   */
  private String initialFileName;

  /**
   * @generated
   */
  private IPath initialContainerFullPath;

  /**
   * @generated
   */
  private Text fileNameEditor;

  /**
   * @generated
   */
  public WizardNewFileCreationPage(String name,
      IStructuredSelection currentSelection) {
    super(name);
    this.currentSelection = currentSelection;
    String home = System.getProperty("user.home"); //$NON-NLS-1$
    if (home != null) {
      initialContainerFullPath = new Path(home);
    }
  }

  /**
   * @generated
   */
  protected IStructuredSelection getSelection() {
    return currentSelection;
  }

  /**
   * @generated
   */
  public String getFileName() {
    if (fileNameEditor == null) {
      return initialFileName;
    }
    IPath path = getFilePath();
    if (path == null || path.isEmpty() || path.hasTrailingSeparator()) {
      return null;
    }
    return path.lastSegment();
  }

  /**
   * @generated
   */
  public void setFileName(String fileName) {
    if (fileNameEditor == null) {
      initialFileName = fileName;
      return;
    }
    setFilePath(getContainerFullPath(), fileName);
  }

  /**
   * @generated
   */
  public IPath getContainerFullPath() {
    if (fileNameEditor == null) {
      return initialContainerFullPath;
    }
    IPath path = getFilePath();
    if (path == null || path.isEmpty()) {
      return null;
    }
    if (path.hasTrailingSeparator()) {
      return path;
    }
    path = path.removeLastSegments(1);
    if (path.isEmpty()) {
      return null;
    }
    return path.addTrailingSeparator();
  }

  /**
   * @generated
   */
  public void setContainerFullPath(IPath containerPath) {
    if (fileNameEditor == null) {
      initialContainerFullPath = containerPath;
      return;
    }
    setFilePath(containerPath, getFileName());
  }

  /**
   * @generated
   */
  protected IPath getFilePath() {
    String fileName = fileNameEditor.getText().trim();
    if (fileName.length() == 0) {
      return null;
    }
    return new Path(fileNameEditor.getText());
  }

  /**
   * @generated
   */
  protected void setFilePath(IPath containerPath, String fileName) {
    if (fileName == null) {
      fileName = ""; //$NON-NLS-1$
    } else {
      fileName = fileName.trim();
    }
    if (containerPath == null) {
      fileNameEditor.setText(fileName);
    } else {
      if (!containerPath.hasTrailingSeparator()) {
        containerPath = containerPath.addTrailingSeparator();
      }
      IPath path = fileName.length() == 0 ? containerPath : containerPath
          .append(fileName);
      fileNameEditor.setText(path.toOSString());
    }
    setPageComplete(validatePage());
  }

  /**
   * @generated
   */
  public void createControl(Composite parent) {
    Composite plate = new Composite(parent, SWT.NONE);
    plate.setLayout(new GridLayout(2, false));
    Label label = new Label(plate, SWT.NONE);
    label
        .setText(OntoUML.diagram.part.Messages.WizardNewFileCreationPage_FileLabel);
    label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false,
        false, 2, 1));
    fileNameEditor = new Text(plate, SWT.SINGLE | SWT.BORDER);
    fileNameEditor.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
        false));
    Button button = new Button(plate, SWT.PUSH);
    button
        .setText(OntoUML.diagram.part.Messages.WizardNewFileCreationPage_BrowseButton);
    button.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false,
        false));

    // logic
    fileNameEditor.addModifyListener(new ModifyListener() {

      public void modifyText(ModifyEvent e) {
        setPageComplete(validatePage());
      }
    });
    button.addSelectionListener(new SelectionListener() {

      public void widgetSelected(SelectionEvent e) {
        FileDialog dialog = new FileDialog(getShell(), SWT.SAVE);
        dialog
            .setText(OntoUML.diagram.part.Messages.WizardNewFileCreationPage_SelectNewFileDialog);
        dialog.setFileName(getFileName());
        String fileName = dialog.open();
        if (fileName != null) {
          fileNameEditor.setText(fileName);
          setPageComplete(validatePage());
        }
      }

      public void widgetDefaultSelected(SelectionEvent e) {
      }
    });

    // init
    setFilePath(initialContainerFullPath, initialFileName);
    setControl(plate);
  }

  /**
   * @generated
   */
  protected boolean validatePage() {
    String fileName = fileNameEditor.getText().trim();
    if (fileName.length() == 0) {
      setErrorMessage(OntoUML.diagram.part.Messages.WizardNewFileCreationPage_EmptyFileNameError);
      return false;
    }
    if (!new Path("").isValidPath(fileName)) { //$NON-NLS-1$
      setErrorMessage(OntoUML.diagram.part.Messages.WizardNewFileCreationPage_InvalidFileNameError);
      return false;
    }
    setErrorMessage(null);
    return true;
  }
}
TOP

Related Classes of OntoUML.diagram.application.WizardNewFileCreationPage

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.