Class NewScopedElementWizardPage

java.lang.Object
org.eclipse.jface.dialogs.DialogPage
org.eclipse.jface.wizard.WizardPage
org.libreoffice.ide.eclipse.core.wizards.pages.NewScopedElementWizardPage
All Implemented Interfaces:
org.eclipse.jface.dialogs.IDialogPage, org.eclipse.jface.dialogs.IMessageProvider, org.eclipse.jface.wizard.IWizardPage, IFieldChangedListener, IListenablePage
Direct Known Subclasses:
NewInterfaceWizardPage, NewServiceWizardPage

public abstract class NewScopedElementWizardPage extends org.eclipse.jface.wizard.WizardPage implements IFieldChangedListener, IListenablePage
Abstract class for a wizard page to create a scoped element such as a service or an interface.
  • Constructor Details

    • NewScopedElementWizardPage

      public NewScopedElementWizardPage(String name)
      Default constructor to use when neither the project nor the OOo instance is known.
      Parameters:
      name - wizard page name
    • NewScopedElementWizardPage

      public NewScopedElementWizardPage(String pageName, IUnoidlProject unoProject)
      Constructor to use when the UNO project is already created.
      Parameters:
      pageName - name of the page
      unoProject - UNO project in which to create a scoped type
    • NewScopedElementWizardPage

      public NewScopedElementWizardPage(String pageName, IUnoidlProject project, String rootName, String elementName)
      Constructor to use when the UNO project is already created, the scoped type name and it's path already known.
      Parameters:
      pageName - name of the wizard page
      project - UNO project in which to create a scoped type
      rootName - scoped name of the module containing the type
      elementName - name of the type, without any '.' or '::'
    • NewScopedElementWizardPage

      public NewScopedElementWizardPage(String pageName, IOOo instance)
      Creates a default scoped name type wizard page with blank container path and type name.
      Parameters:
      pageName - name of the wizard page
      instance - the OOo instance to use to retrieve the types
    • NewScopedElementWizardPage

      public NewScopedElementWizardPage(String pageName, String rootName, String elementName, IOOo instance)
      Constructor to use when the UNO project is already created, the scoped type name and it's path already known.
      Parameters:
      pageName - name of the wizard page
      rootName - scoped name of the module containing the type
      elementName - name of the type, without any '.' or '::'
      instance - the reference to the OOo to use for type selection
  • Method Details

    • getProject

      public IUnoidlProject getProject()
      Returns:
      the project which has been set to the page
    • getTypeLabel

      protected abstract String getTypeLabel()
      Returns:
      the string corresponding to the type name, e.g. "interface".
    • getImageDescriptor

      protected abstract org.eclipse.jface.resource.ImageDescriptor getImageDescriptor()
      Returns:
      the image descriptor to put on the top-right of the page
    • createSpecificControl

      protected abstract void createSpecificControl(org.eclipse.swt.widgets.Composite pParent)
      Implement this method to add specific controls for the subclassing wizard page.
      Parameters:
      pParent - the composite parent where to put the controls
    • getProvidedTypes

      public abstract int getProvidedTypes()
      Returns:
      the types to get in the UNO types provider. The returned integer is a
       bit or
               
      of the types defined in the UnoTypeProvider class.
    • setOOoInstance

      public void setOOoInstance(IOOo instance)
      Set the OOo instance to query the types from.
      Parameters:
      instance - OOo instance to use.
    • setUnoidlProject

      public void setUnoidlProject(IUnoidlProject pUnoProject)
      Sets the UNO project in which to create the scoped name type.
      Parameters:
      pUnoProject - the projet for which to create the UNO type.
    • getPackageRoot

      public String getPackageRoot()
      Returns:
      the root module where to create the UNO type.
    • getPackage

      public String getPackage()
      Returns:
      the module containing the UNO type, separated by "::".
    • getElementName

      public String getElementName()
      Returns:
      the name of the element to create.
    • setPackageRoot

      public void setPackageRoot(String pValue)
      The container name of the type to create is composed of two parts: the package root and the package; this method sets the first part.
      Parameters:
      pValue - the new package root to set
    • setPackage

      public void setPackage(String value, boolean forced)
      the container name of the type to create is composed of two parts: the package root and the package. This method sets the second part.
      Parameters:
      value - the new package value
      forced - true will replace the current value, false will set the value only if the current package is empty or null.
    • setName

      public void setName(String value, boolean forced)
      Sets the name of the element to create.
      Parameters:
      value - the new package value
      forced - true will replace the current value, false will set the value only if the current package is empty or null.
    • isPublished

      public boolean isPublished()
      Returns:
      whether the service is published or not.
    • setPublished

      public void setPublished(boolean value, boolean forced)
      Sets whether the type is published or not.
      Parameters:
      value - true if the type is published, false otherwise
      forced - true to overwrite the existing value.
    • dispose

      public void dispose()
      Specified by:
      dispose in interface org.eclipse.jface.dialogs.IDialogPage
      Overrides:
      dispose in class org.eclipse.jface.dialogs.DialogPage
    • addPageListener

      public void addPageListener(IPageListener listener)
      Add the page listener.
      Specified by:
      addPageListener in interface IListenablePage
      Parameters:
      listener - the page listener to add
    • removePageListener

      public void removePageListener(IPageListener listener)
      Remove the page listener.
      Specified by:
      removePageListener in interface IListenablePage
      Parameters:
      listener - the listener to remove.
    • firePageChanged

      protected void firePageChanged(UnoFactoryData data)
      Notifies all the page listeners that the pages data have changed.
      Parameters:
      data - the new data of the page.
    • createControl

      public void createControl(org.eclipse.swt.widgets.Composite pParent)
      Specified by:
      createControl in interface org.eclipse.jface.dialogs.IDialogPage
    • setVisible

      public void setVisible(boolean pVisible)
      Specified by:
      setVisible in interface org.eclipse.jface.dialogs.IDialogPage
      Overrides:
      setVisible in class org.eclipse.jface.dialogs.DialogPage
    • fillData

      public UnoFactoryData fillData(UnoFactoryData data)
      Parameters:
      data - the UNO data to complete
      Returns:
      the given data with the completed properties, null if the provided data is null
    • getEmptyTypeData

      public abstract UnoFactoryData getEmptyTypeData()
      Creates an empty factory data for the page UNO type.
      Returns:
      the empty UNO factory data
    • getTypeData

      public static UnoFactoryData getTypeData(UnoFactoryData data)
      Parameters:
      data - the data of the project for which to get the default type data.
      Returns:
      the default type data for the project
    • fieldChanged

      public void fieldChanged(FieldEvent event)
      Method called when the row has changed.
      Specified by:
      fieldChanged in interface IFieldChangedListener
      Parameters:
      event - the field event thrown
    • isPageComplete

      public boolean isPageComplete()
      Specified by:
      isPageComplete in interface org.eclipse.jface.wizard.IWizardPage
      Overrides:
      isPageComplete in class org.eclipse.jface.wizard.WizardPage
    • existsIdlFile

      public static boolean existsIdlFile(String idlFullName, IUnoidlProject pPrj)
      Checks if an IDL file exists in the project for a given IDL type.

      Please note that this method behaves correctly only if the user is respecting the following design rules:

      • One IDL type per file
      • The IDL types have to be organized in directories representing the UNO modules

      Parameters:
      idlFullName - the full name of the IDL file check
      pPrj - the project where to look for the IDL file
      Returns:
      true if the an IDL file corresponds to the searched type, false otherwise.