get category
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.wiki / src / net / sourceforge / phpeclipse / wiki / export / pdf / WikiPDFExportWizardPage.java
index a71bcf6..5407958 100644 (file)
@@ -44,29 +44,31 @@ import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
 public final class WikiPDFExportWizardPage extends WizardExportResourcesPage implements IPropertyChangeListener, SelectionListener {
 //  private StringFieldEditor folderText;
 
-  private static final String[] PDF_EXTENSION = { "pdf" };
+  private static final String[] PDF_EXTENSION = { "*.pdf" };
 
   //dialog store id constants
-  private static final String STORE_DESTINATION_NAMES_ID = "WikiPDFExportWizardPage.STORE_DESTINATION_NAMES_ID"; //$NON-NLS-1$
+  private static final String PAGE_NAME = "WikiPDFExportWizardPage"; //$NON-NLS-1$
+  
+  private static final String STORE_DESTINATION_NAMES = PAGE_NAME+".STORE_DESTINATION_NAMES"; //$NON-NLS-1$
 
-  private static final String STORE_OVERWRITE_EXISTING_FILES_ID = "WikiPDFExportWizardPage.STORE_OVERWRITE_EXISTING_FILES_ID"; //$NON-NLS-1$
+  private static final String STORE_OVERWRITE_EXISTING_FILES_ID = PAGE_NAME+".STORE_OVERWRITE_EXISTING_FILES_ID"; //$NON-NLS-1$
 
 //  private StringFieldEditor exportFileText;
 
-  private Combo destinationNameField;
+  private Combo fDestinationNamesCombo;
 
   private Button destinationBrowseButton;
 
   protected Button overwriteExistingFilesCheckbox;
 
-  private ISelection selection;
+  private ISelection fInitialSelection;
   private IDialogSettings fSettings = null;
 
   public WikiPDFExportWizardPage(IStructuredSelection selection) {
-    super(WikiEditorPlugin.getResourceString("Export.wizardTitle"), selection);
+    super(PAGE_NAME, selection);
     setTitle(WikiEditorPlugin.getResourceString("Export.wizardTitle"));
     setDescription(WikiEditorPlugin.getResourceString("Export.wizardDescription"));
-    this.selection = selection;
+    this.fInitialSelection = selection;
   }
 
   /**
@@ -91,13 +93,13 @@ public final class WikiPDFExportWizardPage extends WizardExportResourcesPage imp
     destinationLabel.setFont(font);
 
     // destination name entry field
-    destinationNameField = new Combo(destinationSelectionGroup, SWT.SINGLE | SWT.BORDER);
-    destinationNameField.addListener(SWT.Modify, this);
-    destinationNameField.addListener(SWT.Selection, this);
+    fDestinationNamesCombo = new Combo(destinationSelectionGroup, SWT.SINGLE | SWT.BORDER);
+    fDestinationNamesCombo.addListener(SWT.Modify, this);
+    fDestinationNamesCombo.addListener(SWT.Selection, this);
     GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
     data.widthHint = SIZING_TEXT_FIELD_WIDTH;
-    destinationNameField.setLayoutData(data);
-    destinationNameField.setFont(font);
+    fDestinationNamesCombo.setLayoutData(data);
+    fDestinationNamesCombo.setFont(font);
 
     // destination browse button
     destinationBrowseButton = new Button(destinationSelectionGroup, SWT.PUSH);
@@ -173,7 +175,7 @@ public final class WikiPDFExportWizardPage extends WizardExportResourcesPage imp
    */
   protected void handleDestinationBrowseButtonPressed() {
     FileDialog dialog = new FileDialog(getContainer().getShell(), SWT.SAVE);
-    dialog.setFilterExtensions(PDF_EXTENSION);
+    dialog.setFilterExtensions(PDF_EXTENSION); 
     dialog.setText("Select pdf file");
     dialog.setFilterPath(getDestinationValue());
     String selectedFileName = dialog.open();
@@ -184,54 +186,84 @@ public final class WikiPDFExportWizardPage extends WizardExportResourcesPage imp
     }
   }
 
+//  /**
+//   * Answer the contents of self's destination specification widget
+//   * 
+//   * @return java.lang.String
+//   */
+//  protected String getDestinationValue() {
+//    
+//    return fDestinationNamesCombo.getText().trim();
+//  }
   /**
-   * Answer the contents of self's destination specification widget
-   * 
-   * @return java.lang.String
-   */
-  protected String getDestinationValue() {
-    return destinationNameField.getText().trim();
-  }
+        *      Answer the contents of the destination specification widget. If this
+        *      value does not have the required suffix then add it first.
+        *
+        *      @return java.lang.String
+        */
+       protected String getDestinationValue() {
+               String destinationText= fDestinationNamesCombo.getText().trim();
+               if (destinationText.indexOf('.') < 0)
+                       destinationText += getOutputSuffix();
+               return destinationText;
+       }
+       
+       /**
+        *      Answer the suffix that files exported from this wizard must have.
+        *      If this suffix is a file extension (which is typically the case)
+        *      then it must include the leading period character.
+        *
+        *      @return java.lang.String
+        */
+       protected String getOutputSuffix() {
+               return ".pdf"; //$NON-NLS-1$
+       }
 
   /**
    * Set the contents of the receivers destination specification widget to the passed value
    *  
    */
   protected void setDestinationValue(String value) {
-    destinationNameField.setText(value);
+    fDestinationNamesCombo.setText(value);
   }
 
   /**
    * Hook method for saving widget values for restoration by the next instance of this class.
    */
   protected void internalSaveWidgetValues() {
-    // update directory names history
-    IDialogSettings settings = getDialogSettings();
-    if (settings != null) {
-      String[] fileNames = settings.getArray(STORE_DESTINATION_NAMES_ID);
-      if (fileNames == null)
-        fileNames = new String[0];
-
-      fileNames = addToHistory(fileNames, getDestinationValue());
-      settings.put(STORE_DESTINATION_NAMES_ID, fileNames);
-
-      // options
-      settings.put(STORE_OVERWRITE_EXISTING_FILES_ID, overwriteExistingFilesCheckbox.getSelection());
-
-      //                       settings.put(
-      //                               STORE_CREATE_STRUCTURE_ID,
-      //                               createDirectoryStructureButton.getSelection());
-
-    }
+    
   }
 
   /**
+        * Persists resource specification control setting that are to be restored
+        * in the next instance of this page. Subclasses wishing to persist
+        * settings for their controls should extend the hook method 
+        * <code>internalSaveWidgetValues</code>.
+        */
+       public final void saveWidgetValues() {
+               // update directory names history
+               IDialogSettings settings= getDialogSettings();
+               if (settings != null) {
+                       String[] directoryNames= settings.getArray(STORE_DESTINATION_NAMES);
+                       if (directoryNames == null)
+                               directoryNames= new String[0];
+                       directoryNames= addToHistory(directoryNames, getDestinationValue());
+                       settings.put(STORE_DESTINATION_NAMES, directoryNames);
+
+                       // options
+                       settings.put(STORE_OVERWRITE_EXISTING_FILES_ID, overwriteExistingFilesCheckbox.getSelection());
+               }
+               // Allow subclasses to save values
+               internalSaveWidgetValues();
+       }
+
+  /**
    * Hook method for restoring widget values to the values that they held last time this wizard was used to completion.
    */
   protected void restoreWidgetValues() {
     IDialogSettings settings = getDialogSettings();
     if (settings != null) {
-      String[] fileNames = settings.getArray(STORE_DESTINATION_NAMES_ID);
+      String[] fileNames = settings.getArray(STORE_DESTINATION_NAMES);
       if (fileNames == null)
         return; // ie.- no settings stored
 
@@ -257,7 +289,7 @@ public final class WikiPDFExportWizardPage extends WizardExportResourcesPage imp
    *          java.lang.String
    */
   protected void addDestinationItem(String value) {
-    destinationNameField.add(value);
+    fDestinationNamesCombo.add(value);
   }
 
   /**
@@ -265,6 +297,7 @@ public final class WikiPDFExportWizardPage extends WizardExportResourcesPage imp
    */
   public void createControl(Composite parent) {
     super.createControl(parent);
+//    update();
     giveFocusToDestination();
     //         WorkbenchHelp.setHelp(
     //                 getControl(),
@@ -275,7 +308,7 @@ public final class WikiPDFExportWizardPage extends WizardExportResourcesPage imp
    * Set the current input focus to self's destination entry field
    */
   protected void giveFocusToDestination() {
-    destinationNameField.setFocus();
+    fDestinationNamesCombo.setFocus();
   }
 
   //  private Composite createControlsContainer(Composite parent) {
@@ -346,11 +379,11 @@ public final class WikiPDFExportWizardPage extends WizardExportResourcesPage imp
   //  }
 
 //  private void initialize() throws CoreException {
-//    if (selection == null || selection.isEmpty() || !(selection instanceof IStructuredSelection)) {
+//    if (fInitialSelection == null || fInitialSelection.isEmpty() || !(fInitialSelection instanceof IStructuredSelection)) {
 //      return;
 //    }
 //
-//    IStructuredSelection ssel = (IStructuredSelection) selection;
+//    IStructuredSelection ssel = (IStructuredSelection) fInitialSelection;
 //    if (ssel.size() == 1) {
 //      initialiseFromSelectedObject(ssel.getFirstElement());
 //    }
@@ -497,20 +530,27 @@ public final class WikiPDFExportWizardPage extends WizardExportResourcesPage imp
 
     return false;
   }
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.wizard.WizardPage#getDialogSettings()
-   */
-//  protected IDialogSettings getDialogSettings() {
-//    IDialogSettings dialogBounds= fSettings.getSection(DIALOG_BOUNDS_KEY);
-//     if (dialogBounds == null) {
-//             dialogBounds= new DialogSettings(DIALOG_BOUNDS_KEY);
-//             fSettings.addSection(dialogBounds);
+  
+  /**
+        * Returns a boolean indicating whether the passed File handle is
+        * is valid and available for use.
+        *
+        * @return boolean
+        */
+//     protected boolean ensureTargetFileIsValid(File targetFile) {
+//             if (targetFile.exists() && targetFile.isDirectory() && fDestinationNamesCombo.getText().length() > 0) {
+//                     setErrorMessage(JarPackagerMessages.getString("JarPackageWizardPage.error.exportDestinationMustNotBeDirectory")); //$NON-NLS-1$
+//                     fDestinationNamesCombo.setFocus();
+//                     return false;
+//             }
+//             if (targetFile.exists()) {
+//                     if (!targetFile.canWrite()) {
+//                             setErrorMessage(JarPackagerMessages.getString("JarPackageWizardPage.error.jarFileExistsAndNotWritable")); //$NON-NLS-1$
+//                             fDestinationNamesCombo.setFocus();
+//                             return false;
+//                     }
+//             }
+//             return true;
 //     }
-//     dialogBounds.put(X, bounds.x);
-//     dialogBounds.put(Y, bounds.y);
-//     dialogBounds.put(WIDTH, bounds.width);
-//     dialogBounds.put(HEIGHT, bounds.height);
-//    // TODO Auto-generated method stub
-//    return super.getDialogSettings();
-//  }
+
 }
\ No newline at end of file