tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
897
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Szdnez Szdnez ist offline Rookie
    Registriert seit
    Oct 2010
    Beiträge
    6
    Hallo,

    ich habe folgenden Plan. Ich möchte verschiedene PlugIns für eclipse schreiben, die meinen Arbeitsalltag erleichtern sollen (und weil ich mal mit PlugIns "spielen" möchte). Diese PlugIns sollen über Kontextmenüs aufgerufen werden (werden alle zusammengefasst unter einem Hauptmenüpunkt mit entsprechenden Untermenüs). Das ganze funktioniert soweit auch wunderbar. Nun möchte ich die Auswahl meiner "Tools" variabel halten, so dass man sich als Nutzer aussuchen kann, was man gerne nutzen möchte und was nicht.
    Dazu habe ich mir gedacht, dass ich ein PlugIn schreibe, dass einen Hauptmenüpunkt für die jeweils unterschiedlichen Anwendungsfälle bereitstellt (File, CompilationUnit, etc.) (dieses PlugIn sei mal Hauptplugin genannt). Meine Tools werden jeweils eigene PlugIns, die sich dann in diesen Menüpunkt als Untermenü "einhängen" können. Wie kann ich das am geschicktesten realisieren?
    Ich habe mir das vielleicht so gedacht, dass mein Hauptplugin Extension Points zur Verfügung stellt, über die sich die anderen PlugIns "registrieren" und im Hauptplugin über die registrierten PlugIns das Kontextmenü dynamisch zusammengebaut wird. Allerdings weiß ich nicht, wie ich dynamisch/programmatisch das Kontextmenü bearbeiten kann. Vielleicht hat ja von euch jemand einen Tipp?
    Oder habe ich vielzu kompliziert gedacht und das ganze kann man auch viel einfacher realisieren?

    Dankeschön
     

  2. #2
    Szdnez Szdnez ist offline Rookie
    Registriert seit
    Oct 2010
    Beiträge
    6
    Mittlerweile habe ich einiges dazu im Netz gefundenm aber mit keinem Beispiel hatte ich bisher Erfolg. Die Beispiele sehen in etwa immer so aus:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    
    public void addPopUpContribution()
         {
             final ICommandService commandService =
                 (ICommandService) PlatformUI.getWorkbench().getService( ICommandService.class );
             final Command command = commandService.getCommand( "my.new.undefined.command" );
             command.define( "New Command", "This is created Programatically!", commandService
                     .getCategory( "com.hmb.plugin.sample.view.command.category" ) );
     
             final IHandlerService handlerService = 
                 (IHandlerService) PlatformUI.getWorkbench().getService( IHandlerService.class );
             handlerService.activateHandler( command.getId(), new AbstractHandler()
             {
                 @Override
                 public Object execute( final ExecutionEvent event ) throws ExecutionException
                 {
                     System.out.println( "Command executed !" );
                     return null;
                 }
             } );
     
             final AbstractContributionFactory contribFactory =
                 new AbstractContributionFactory( "popup:org.eclipse.ui.popup.any?after=additions", null )
                 {
                     @Override
                     public void createContributionItems( 
                             final IServiceLocator serviceLocator, final IContributionRoot additions )
                     {
                         final CommandContributionItemParameter p =
                             new CommandContributionItemParameter( serviceLocator, "", command.getId(),
                                     CommandContributionItem.STYLE_PUSH );
                         p.label = "Exit the application";
                         p.icon = PlugIn.getImageDescriptor( "icons/sample.gif" );
        
                         final CommandContributionItem item = new CommandContributionItem( p );
                         item.setVisible( true );
                         
                         additions.addContributionItem( item, null );
                     }
                 };
     
             // create a dynamic toolbar
             final IMenuService menuService = (IMenuService) PlatformUI.getWorkbench().getService( IMenuService.class );
             menuService.addContributionFactory( contribFactory );
         }
    Aufgerufen wird die Methode addPopUpContribution() in meiner PlugIn-Klasse in der Überlagerung der Methode public void start( final BundleContext pContext ). Starte ich dann das "PlugIn", so kann ich aber in keinem Kontextmenü einen Eintrag Exit the application finden. Hat vielleicht jemand eine Ahnung warum?Ist bestimmt nur eine Kleinigkeit, aber wenn man diese nicht weiß...
     

Ähnliche Themen

  1. Eclipse Plugin - Editor erweitern?
    Von Teh_Lord im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 18.08.10, 12:16
  2. Kontextmenü erweitern / Hyperlink senden an
    Von Communicate im Forum Microsoft Windows
    Antworten: 1
    Letzter Beitrag: 20.01.09, 22:19
  3. Kontextmenü erweitern bei bestimmten Dateiendungen
    Von partitionist im Forum Microsoft Windows
    Antworten: 1
    Letzter Beitrag: 09.04.07, 23:12
  4. Desktop Kontextmenü erweitern?
    Von partitionist im Forum Microsoft Windows
    Antworten: 2
    Letzter Beitrag: 05.12.06, 19:16
  5. Antworten: 3
    Letzter Beitrag: 05.01.05, 10:15

Stichworte