Sto lavorando su un ibrido 3.8-e4 (cioè abbiamo le dipendenze Luna, ma non usiamo ancora Application.e4xmi ). Quindi fondamentalmente stiamo eseguendo il livello compatto.
Detto questo, sarebbe bello trovare un modo programmatico e4 per impilare queste brutte visualizzazioni nella cartella dell'editor.
1.) Problema
Voglio posizionare una cartella della vista generica nell'area dell'editor, in modo che ogni vista aperta in fase di esecuzione venga aperta lì.
(foto rubata da questa domanda )
2.1) Possibile correzione n. 1: utilizzo di plugin.xml
Crea un'estensione in prospettiva e aggiungi ogni possibile vista a tale estensione, con lo stack delle relazioni sui relativi org.eclipse.ui.editorss . Questo è un po 'scomodo se hai troppe viste che aspettano di essere aperte e se il progetto si ridimensiona rapidamente. Ho anche notato che gli ID di visualizzazione con caratteri jolly non funzionano qui.
Se trovi il tempo di aggiungere ogni possibile vista all'estensione della prospettiva, funzionerebbe. Sebbene, SE apri una vista che non è stata aggiunta qui (cioè: si apre in una cartella diversa), allora ogni vista aperta successiva verrà aperta nella cartella precedente e NON nell'area dell'editor (chiedi ulteriori spiegazioni se non lo fai prendilo).
2.2) Possibile correzione n. 2: utilizzo del codice nella fabbrica delle prospettive
In IPerspectiveFactory
, abbiamo accesso a IPageLayout
, che sembra essere org.eclipse.ui.internal.e4.compatibility.ModeledPageLayout
(e4 stuff).
Ora, questa ModeledPageLayout
implementazione è ragionevole, ma anche senza documentazione e strane API pubbliche. Questo dà la possibilità di impilare una vista su qualsiasi altro parente
modeledPageLayout.stackView("newView0", IPageLayout.ID_EDITOR_AREA);
Questa sarebbe la versione programmatica di 2.1 . Inoltre, lo stesso problema appare qui. Se una vista viene aperta da qualche altra parte, il codice sopra diventa inutile.
Abbastanza interessante, l' stackView
API non supporta i caratteri jolly (mentre altri come lo addView
fanno).
2.3) Possibile correzione n. 3: soluzioni alternative yaaay!
Ho molte prospettive e molte cartelle diverse in ognuna. Tutto è posizionato con precisione.
Poiché Eclipse offre le API per ottenere tutti gli ID di visualizzazione da qualsiasi punto del sistema, voglio fare quanto segue, in base alla prospettiva: ogni ID di visualizzazione che non è stato aggiunto a una cartella specifica verrà aggiunto all'area dell'editor (cioè la cartella dell'editor , stack dell'editor) .
Questa sarebbe la mia ultima risorsa, a meno che qualcuno non offra una soluzione più conveniente e che fa risparmiare tempo.
Ricorda, un'alternativa programmatica a e4 è più flessibile!
3.) Domande correlate
- Eclipse RCP: apre la vista nella cartella Editor
- Eclipse RCP: impilare una vista con l'area dell'editor?
- Prospettiva Eclipse personalizzata, con vista inizialmente invisibile impilata nell'area dell'editor
- Domanda di Google, risposta di Lars
Questi sarebbero stati resi deprecati per la versione e4.
4.) Bug correlato su Bugzilla di Eclipse:
Questo bug recente aperto da me ha un allegato con un piccolo SSCCE. I passaggi per riprodurlo sono descritti in questo commento , quindi non li copierò e incollerò qui.