You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hop.apache.org by Nicolas ADMENT <na...@gmail.com> on 2020/10/08 18:52:01 UTC

Proposal to improve the creation / management of gui perspectives

This proposal simplify the creation of perspective and facilitate a change
of presentation in the future

   - Manage image with @HopPerspectivePlugin annotation ( add "image"
   attribute )
   - Do not use @GuiToolbarElement for perspective, but create and manage
   the perspective activation with toolbar item directly in HopGui.
   - Create a toolbar item with the SWT.RADIO flag better visibility and to
   have a single image
   - Remove from the interface IHopPerspective method show() and hide(),
   use only activate()
   - Add to the interface IHopPerspective method perspectiveActivated() to
   notify this perspective that it has been activated.
   - Create interface IHopPerspectiveListener to notify perspective
   activation with method perspectiveActivated ( IHopPerspective )
   - Add to class PerspectiveManager methods to addPerspectiveListener()
   and removePerspectiveListener();
   - Remove from the interface IHopPerspective method getFormData ()  not
   very useful

Example of code simplification

@HopPerspectivePlugin(
     id = "HopDataOrchestrationPerspective",
     name = "Data Orchestration",
     description = "The Hop Data Orchestration Perspective for pipelines
and workflows",
++ image = "ui/images/pipeline.svg"
)

--  @GuiToolbarElement(
--    root = HopGui.GUI_PLUGIN_PERSPECTIVES_PARENT_ID,
--    id = ID_PERSPECTIVE_TOOLBAR_ITEM,
--    image = "ui/images/pipeline.svg",
--   toolTip = "Data Orchestration"
-- )

/*
  Activate a perspective and show it in gui
  or use alternative:
      HopGui.getPerspectiveManager().showPerspective(Class<? extends
IHopPerspective>);
      HopGui.setActivePerspective (IHopPerspective>);
*/
  @Override public void activate() {
    hopGui.setActivePerspective( this );
  }

--  @Override public void show() {
--    composite.setVisible( true );
--  hopGui.getPerspectivesToolbarWidgets().findToolItem(
ID_PERSPECTIVE_TOOLBAR_ITEM ).setImage(
GuiResource.getInstance().getImageToolbarDataOrchestration() );
--  }

--  @Override public void hide() {
--    composite.setVisible( false );
--  hopGui.getPerspectivesToolbarWidgets().findToolItem(
ID_PERSPECTIVE_TOOLBAR_ITEM ).setImage(
GuiResource.getInstance().getImageToolbarDataOrchestrationInactive() );
--  }


<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Garanti
sans virus. www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Re: Proposal to improve the creation / management of gui perspectives

Posted by Matt Casters <ma...@neo4j.com.INVALID>.
Hi Nicolas,

As mentioned earlier on the chat I'm fully in favor of improving the
perspectives and I would say: thank you in advance for the changes!
With the Hop GUI having only been recently written I don't think we need to
vote on this :-)
I'd be happy to test the PR.

Cheers,
Matt

On Thu, Oct 8, 2020 at 8:52 PM Nicolas ADMENT <na...@gmail.com> wrote:

> This proposal simplify the creation of perspective and facilitate a change
> of presentation in the future
>
>    - Manage image with @HopPerspectivePlugin annotation ( add "image"
>    attribute )
>    - Do not use @GuiToolbarElement for perspective, but create and manage
>    the perspective activation with toolbar item directly in HopGui.
>    - Create a toolbar item with the SWT.RADIO flag better visibility and to
>    have a single image
>    - Remove from the interface IHopPerspective method show() and hide(),
>    use only activate()
>    - Add to the interface IHopPerspective method perspectiveActivated() to
>    notify this perspective that it has been activated.
>    - Create interface IHopPerspectiveListener to notify perspective
>    activation with method perspectiveActivated ( IHopPerspective )
>    - Add to class PerspectiveManager methods to addPerspectiveListener()
>    and removePerspectiveListener();
>    - Remove from the interface IHopPerspective method getFormData ()  not
>    very useful
>
> Example of code simplification
>
> @HopPerspectivePlugin(
>      id = "HopDataOrchestrationPerspective",
>      name = "Data Orchestration",
>      description = "The Hop Data Orchestration Perspective for pipelines
> and workflows",
> ++ image = "ui/images/pipeline.svg"
> )
>
> --  @GuiToolbarElement(
> --    root = HopGui.GUI_PLUGIN_PERSPECTIVES_PARENT_ID,
> --    id = ID_PERSPECTIVE_TOOLBAR_ITEM,
> --    image = "ui/images/pipeline.svg",
> --   toolTip = "Data Orchestration"
> -- )
>
> /*
>   Activate a perspective and show it in gui
>   or use alternative:
>       HopGui.getPerspectiveManager().showPerspective(Class<? extends
> IHopPerspective>);
>       HopGui.setActivePerspective (IHopPerspective>);
> */
>   @Override public void activate() {
>     hopGui.setActivePerspective( this );
>   }
>
> --  @Override public void show() {
> --    composite.setVisible( true );
> --  hopGui.getPerspectivesToolbarWidgets().findToolItem(
> ID_PERSPECTIVE_TOOLBAR_ITEM ).setImage(
> GuiResource.getInstance().getImageToolbarDataOrchestration() );
> --  }
>
> --  @Override public void hide() {
> --    composite.setVisible( false );
> --  hopGui.getPerspectivesToolbarWidgets().findToolItem(
> ID_PERSPECTIVE_TOOLBAR_ITEM ).setImage(
> GuiResource.getInstance().getImageToolbarDataOrchestrationInactive() );
> --  }
>
>
> <
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
> >
> Garanti
> sans virus. www.avast.com
> <
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
> >
> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>


-- 
Neo4j Chief Solutions Architect
*✉   *matt.casters@neo4j.com
☎  +32486972937