2010-03-12 5 views
3

Existe-t-il un moyen de forcer un produit RCP à afficher une page d'accueil à chaque fois que le RCP a été visionné? (Par défaut, la page d'accueil ne s'affiche pour la première fois le RCP est dévisagea.)Afficher la page d'accueil d'Eclipse RCP à chaque démarrage

J'ai essayé org.eclipse.ui/SHOW_INTRO=true dans plugin_customization.ini, mais il n'a pas fait l'affaire ...

Merci, Frank

Répondre

1

Dans votre xml intro vous pouvez avoir quelque chose comme

<contentProvider id="awc" class="org.eclipse.ui.intro.contentproviders.AlwaysWelcomeCheckbox" pluginId="org.eclipse.ui.intro"> 
    <text></text> 
</contentProvider> 

qui permet à l'utilisateur de choisir si la page d'introduction est affichée à chaque fois. Il affiche une petite case à cocher partout où vous le placez. Je ne sais pas s'il est possible de l'activer par défaut.

Si vous ne le souhaitez pas, vous pouvez probablement le définir d'une manière ou d'une autre dans votre workbench.xml et charger explicitement l'écran d'introduction lorsque vous restaurez la session RCP.

+0

Merci, David. Chose est, j'utilise une page d'accueil HTML, qui est définie dans le intro.xml via l'élément introContent. L'ajout de votre contentProvider au XML n'a eu aucun effet. Est-il possible d'ajouter le fournisseur dans la page HTML? –

+1

Selon l'aide d'Eclipse RCP (http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/ua_intro_xhtml.htm), il s'agit d'une fonctionnalité explicite d'utilisation XHTML. Donc, soit vous passez à XHTML ou vous devez trouver un autre moyen de toujours afficher l'écran d'accueil, je pense. –

+0

Étant donné que le contenu de l'aide est HTML, j'ai décidé d'utiliser une solution de contournement et d'afficher une entrée d'intro dans le menu Aide via l'action ActionFactory.INTRO standard. Merci encore! –

4

Vous pouvez également définir ce programme par programme, par ex. dans la méthode initialize de votre WorkbenchAdvisor.

PrefUtil.getAPIPreferenceStore().setValue(
      IWorkbenchPreferenceConstants.SHOW_INTRO, true); 
PrefUtil.saveAPIPrefs(); 

Mais depuis PrefUtil est une classe interne Cette méthode est recommandée si vous ne pouvez pas définir cette propriété dans votre xml (par exemple, vous avez une intro qui ne repose pas sur la page Intro standard)

PS : Le problème est que lorsque l'intro apparaît, la propriété de préférence que vous avez définie via plugin.customization est définie sur false, et plugin_customization ne définit que les valeurs par défaut du magasin de préférences, dès qu'un composant définit la valeur, la valeur par défaut devient obsolète. Avec ce deux lignes, vous définissez cette clé de préférence sur true à chaque démarrage et l'intro apparaît.

+0

Merci pour vos conseils, il a fait l'affaire! –

+3

Une option non interne, qui a fonctionné pour moi dans mon application RCP, consistait à utiliser PlatformUI.getPreferenceStore() au lieu de PrefUtil. – thoni56

0

L'élément "intro" a un attribut "contentDetector".

contentDetector - un nom complet d'une classe étendue org.eclipse.ui.intro.IntroContentDetector. Cette classe optionnelle est utilisée pour détecter le contenu d'introduction nouvellement ajouté. Si le nouveau contenu est disponible, la vue présentant l'introduction sera à nouveau ouverte.

http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fextension-points%2Forg_eclipse_ui_intro.html

Questions connexes