2017-07-18 5 views
0

J'ai une application RCP avec différentes perspectives. Dans une perspective, il y a plusieurs points de vue définis comme tels:Désactiver la fonction de fermeture pour une vue dans une application RCP

p_layout.addStandaloneView(View1.ID, true, IPageLayout.LEFT, lf_ratioView1, p_layout.getEditorArea()); 
    p_layout.addStandaloneView(MyView.ID, false, IPageLayout.TOP, lf_ratioMyView, View1.ID); 
    final IFolderLayout lf_detailsFolder = p_layout.createFolder("Details", IPageLayout.RIGHT, lf_ratioDetailsView, View1.ID); 
    lf_detailsFolder.addPlaceholder(DetailsView.ID); 
    lf_detailsFolder.addPlaceholder(View2.ID); 
    lf_detailsFolder.addPlaceholder(View3.ID + ":*"); 
    lf_detailsFolder.addView(View4.ID); 
    p_layout.addStandaloneView(View 5.ID, true, IPageLayout.BOTTOM, lf_ratioView5, "Details"); 
    p_layout.addStandaloneView(View6.ID, false, IPageLayout.BOTTOM, lf_ratioView6, View5.ID); 

Lorsque le p_layout est un objet IPageLayout. Ces vues sont fermées et ouvertes en appuyant sur différents boutons. Je souhaite désactiver l'option de fermeture pour les vues dans FolderLayout: DetailsView, View2, View3 et View 4 afin que l'utilisateur ne puisse les fermer qu'en utilisant ces boutons.

J'ai essayé en définissant l'attribut pouvant être fermé à partir du point d'extension d'affichage dans le fichier plugin.xml sur true, mais cela n'a pas fonctionné.

J'ai aussi essayé par code:

p_layout.getViewLayout(DetailsView.ID).setCloseable(false); 
    p_layout.getViewLayout(View2.ID).setCloseable(false); 
    p_layout.getViewLayout(View3.ID).setCloseable(false); 
    p_layout.getViewLayout(View24.ID).setCloseable(false); 

également n'a pas fonctionné.

L'application RCP est construite à partir d'Eclipse Mars.

+0

Il n'y a pas d'attribut 'pouvant être fermé' pour le point d'extension de vue. Si vous voulez dire que le point d'extension perspectiveExtension n'utilise pas cela pour faire référence à une vue que vous avez déjà définie dans la fabrique de perspective, cela conduira à un comportement indéfini. –

Répondre

0

Apparemment, la méthode setCloseable(false) pour chaque vue que je ne voulais pas pouvoir fermer était la bonne réponse.

J'ai commencé l'application avec l'attribut "nettoyer l'espace de travail" activé afin que la fonction puisse être efficace.