Editor nicht in der 'EditorArea' öffnen, sondern in einem Folder(Layout).

Status
Nicht offen für weitere Antworten.

Koringar

Bekanntes Mitglied
Hi liebe Gemeinde,

ich habe vor kurzem angefangen mich mit SWT/JFace auseinander zusetzen und nun bin ich auf RCP umgestiegen. Ich konnte in RCP soweit alles erreichen was ich in SWT auch hatte, blos noch etwas besser :D.

Nun bin ich aber an ein Prolem gestoßen. Und zwar wenn ich ein Editor öffne mit 'IPageLyout.openEditor' öffnet sich der Editor ja, in der Vordefinierten 'EditorArea'. Aber das will ich nicht, ich will die Position des Editors selbst bestimmen.
Bei Views kann man es ja mit dem 'IPageLyout.createFolder' ganz gut, kann man das auch auf den Editor anwenden?
 

Wildcard

Top Contributor
Was heißt selbst bestimmen? Ein Editor ist keine View und kann nicht mit Views gemischt werden.
Wie soll es denn aussehen?
 

Koringar

Bekanntes Mitglied
Ja das ist mir klar, aber sie sind ja fast gleich aufgebaut.

Also im Grunde ist es nicht viel was es machen soll, es bekommt ein Objekt mit Variabel
und diese soll es Anzeigen. Mir ist im Grunde egal ob es eine View oder Editor ist, blos so wie ich es gesehen habe kann einer View kein Objekt übergeben werden.

Ich habe mal davon gelesen das man den Editor über eine View aufruft und es würde gehen, habe es aber noch nicht hinbekommen.

Kann man eigentlich general die Position des Editors bestimmen?
 

Wildcard

Top Contributor
Nochmal: Ein Editor erscheint in der Editor Area. Was meinst du mit man einer View kein Objekt übergeben. Mit einer View kann man machen was man will, du kannst dir vom Window zB eine bestimmte View hohlen, sie auf deinen konkreten Typ casten und dort was auch immer für Methoden aufrufen, es ist doch dein Code. Ich sehe das Problem nicht ganz.
 

Koringar

Bekanntes Mitglied
Ok,
naja in den Tutorials die ich bis jetzt gelesen habe, stand das nie so drin. Da sollte man sobald eine View von was Abhängig ist, einen Editor verwenden. Geht aber auch so wie du es beschrieben hast, danke. Dann hätte ich dazu aber noch zwei Fragen:

1. Ich habe die View über 'IWorkbenchPage.ShowView( , , )' geöffnet, da es eine View ist die mehrmals geöffnet werden kann geht es über addView ja nicht. Wie kann ich der View mit übergeben in welchen Folder sie sich öffnen soll?

2. Ich habe dem View eben die Methode 'setInput()' gegen, in der fülle ich meine Felder (Text) jetzt mit den Inhalten. Jedoch sind die als Default mir zu klein, ich kann sie jedoch auch nicht beim erstellen einfach größer machen, da ich die Größe des Inhaltes da noch nicht kenne.
Kann man die Größe der Felder in Nachhinein ändern? Ein 'setSize', 'redraw', 'insert' in mal Möglichen kombinationen hat nichts gebracht.
 

Wildcard

Top Contributor
1. Ich habe die View über 'IWorkbenchPage.ShowView( , , )' geöffnet, da es eine View ist die mehrmals geöffnet werden kann geht es über addView ja nicht. Wie kann ich der View mit übergeben in welchen Folder sie sich öffnen soll?
Das bestimmst du im IPageLayout der Perspective. Entweder direkt hinzufügen, oder, wenn die View nicht direkt sichtbar sein soll, per placeholder.
2. Ich habe dem View eben die Methode 'setInput()' gegen, in der fülle ich meine Felder (Text) jetzt mit den Inhalten. Jedoch sind die als Default mir zu klein, ich kann sie jedoch auch nicht beim erstellen einfach größer machen, da ich die Größe des Inhaltes da noch nicht kenne.
Kann man die Größe der Felder in Nachhinein ändern? Ein 'setSize', 'redraw', 'insert' in mal Möglichen kombinationen hat nichts gebracht.
Entweder du verwendest direkt sinnvolle preferred sizes, oder du musst nochmal layout aufrufen wenn du den Inhalt hast.
 

Koringar

Bekanntes Mitglied
Das bestimmst du im IPageLayout der Perspective. Entweder direkt hinzufügen, oder, wenn die View nicht direkt sichtbar sein soll, per placeholder.

Jo, aber wie bekomme ich das IPageLayout und zweitens soll die View mehrmals verwendet werden und das geht mit addView nicht. Deswegen verwende ich auch showView, aber da kann man die Position nicht bestimmen (auch wenn man vorher ein Placeholder gesetzt hat geht es nicht).
EDIT: Also geht nur bedingt nicht, da wenn man den Placeholder verwendet und die normale Funktion von showView, dann macht es in den Folder. Aber sobald man die Erweiterte Funktion benutzt, um multiple Views anzuzeigen macht er das nicht mehr -.-. Das doch dumm!!!

Entweder du verwendest direkt sinnvolle preferred sizes, oder du musst nochmal layout aufrufen wenn du den Inhalt hast.

Also das mit dem preferred sizes geht nicht ganz, da es ein Feld gibt was 2 Zeichen oder dann vielleicht 500 Zeichen lang sein kann.
Wie meiste das mit dem Layout nochmacl aufrufen? Einfach noch mal das Layout neu zuweisen oder wie?
 
Zuletzt bearbeitet:

Koringar

Bekanntes Mitglied
Jo, aber wie bekomme ich das IPageLayout und zweitens soll die View mehrmals verwendet werden und das geht mit addView nicht. Deswegen verwende ich auch showView, aber da kann man die Position nicht bestimmen (auch wenn man vorher ein Placeholder gesetzt hat geht es nicht).
EDIT: Also geht nur bedingt nicht, da wenn man den Placeholder verwendet und die normale Funktion von showView, dann macht es in den Folder. Aber sobald man die Erweiterte Funktion benutzt, um multiple Views anzuzeigen macht er das nicht mehr -.-. Das doch dumm!!!

Gut, kannst mich ein Trottel nennen, wenn man die erweiterte Funktion von showView für Multiple Views niehmt muss man bei Placeholder an die ID noch ':*' anhängen und schon funktioniert.

Für das zweite Problem habe ich immer noch keine Lösung ;). Aber Danke schon mal.
 

Koringar

Bekanntes Mitglied
Jaha, habe das zweite Problem dann auch gelöst ;). Da ich GridLayout in der View verwende kann man bei jedem Text, 'setLayoutData(new GridData(GridData.FILL_HORIZONTAL))' verwenden und er passt die Größe dann immer automatisch an den Inhalt an.

Ich werde dann auch mal gleich noch eine Zusammenfassung schreiben, wie ich das Thema gelöst habe. Damit andere auch was damit anfangen können.
 

Koringar

Bekanntes Mitglied
Zusammenfassung zum Thema:

Es ist nicht möglich den Editor (extends EditorPart) in einen anderem Folder oder Position zu platzieren, er packt in immer in die 'EditorArea'.

Wer jedoch die Position bestimmen will, muss eine View dafür verwenden. Dies ist jedoch ganz einfach, wenn man weis wie ;).

1. Erstellen der View mit ihren ganzen Feldern, auch die Felder die dann später gefüllt werden soll. Der View gibt man dann das GridLayout (parent.setLayout(new GridLayout())) mit und bei jedem Feld was man später füllen will muss man 'setLayoutData(new GridData(GridData.FILL_HORIZONTAL))' verwenden (dann passt er die horizontale Größe automatisch dem Inhalt an).

2. Man implementiert der View noch eine extra Mehtode(ich habe sie 'setInput' genannt, wie bei einem Editor) der ein Objekt übergeben wird (es ist euch überlassen welches). In dieser setzt ihr dann euren Inhalt der Felder mit den Sachen aus dem Objekt.

3. Erstell ein Commando zum öffnen der View, ihr könnt euch daran orientrieren editor_command (wirklich gutes Tutorial). Blos anstellen des Code 'page.openEditor(input, MyPersonEditor.ID)' verwendet ihr 'page.showView(MyPersonEditor.ID)' (jenach dem ob ihr eine normale View öffnen wollt oder die erweiterte, wenn ihr die View mehrmals anzeigen wollt). Danach lasst euch eine Referenc auf die View wiedergeben mit 'page.findViewReference(ID, SecondaryID)'
und über diese Reference könnt ihr euch die View holen 'getView(true)'. Die View müsst ihr dann natürlich noch auf euren ViewTyp casten und dann könnt ihr die Mehtode 'setInput(Object)' (in meine Fall) ausführen.

4. Dann müsst ihr natürlich noch die Position definieren, wo es angezeigt werden soll. Das macht ihr in der 'Perpective.java', erstellt euch vom IPageLayout einen Folder über 'createFolder' und fügt diesem Folder mit 'addPlaceholder' die View hinzu (bitte beachten, wenn die View mehrmals existieren soll muss ':*' angehangen werden).
Ihr Könnt auch gleich dem IPageLayout den Placeholder geben ohne einen Folder, wenn euch das lieber ist.

Und schon sollte alles Funktionieren ;), vielen Dank auch an Wildcard für die Hilfe.

Tipp für MultipleViews:
Beim erstellen des Commando für Anzeigen könnt ihr noch eine zusätzlich Prüfung rein machen, damit diese View mit ihrere ID und SecondaryID einzigartig ist.
Lasst euch dazu einfach eine Referenc auf die View wieder geben mit 'page.findViewReference(ID, SecondaryID)' und wenn diese null ist, könnt ihr eine neue View erstellen. Wenn nicht könnt ihr über 'page.activate(IViewReference.getView(true))' den Focus auf die View setzen. Nützlich falls ihr mit einer Tabele arbeite und ihr jedes Element nochmal anzeigen wollt in einer View.
 

Wildcard

Top Contributor
Noch ein Tipp: schau dir mal die GridDataFactory an. Ist ein Segen ;)
Java:
GridDataFactory.fillDefaults().grab(true, true).hint(150, 150).applyTo(listBox);
statt:
Java:
GridData listBoxData = new GridData(GridData.FILL_BOTH); 
listBoxData.widthHint = 150; 
listBoxData.heightHint = 150; 
listBoxData.minimumWidth = 1; 
listBoxData.minimumHeight = 1; 
listBox.setLayoutData(listBoxData);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P RCP Text Editor Example - Missing Bundles lassen sich nicht auffinden. Plattformprogrammierung 6
3 Eclipse Editor Plugin selektiert Projekt nicht Plattformprogrammierung 10
C Java Editor funktioniert nicht Plattformprogrammierung 9
L HTML Editor Plattformprogrammierung 2
P Artifact-Editor in RCP-Anwendung Plattformprogrammierung 14
TheWhiteShadow RCP Zustand von Editor Toolbar ToggleButton aktualisieren Plattformprogrammierung 0
D Eclipse_Visual Editor Problem Plattformprogrammierung 2
M Extension Point für Content Assist in JSP Editor gesucht Plattformprogrammierung 2
TheWhiteShadow RCP Editor Inhalt speichern Plattformprogrammierung 3
TheWhiteShadow RCP Konstrukt für Editor in Eclipse gesucht. Plattformprogrammierung 3
G RCP Eclipse Editor + Guice Plattformprogrammierung 8
J RCP Verhindern, dass Editor geschlossen wird Plattformprogrammierung 5
slawaweis RCP Formularbasierter XML-Editor (bzw. vorhandenen XML-Editor integrieren) Plattformprogrammierung 8
C Eclipse Plugin Entwicklung: Editor für Flussdiagramme Plattformprogrammierung 6
E Editor Schriftgröße ändern per "Java Code" Plattformprogrammierung 8
W letzte angeklickten Editor ermitteln Plattformprogrammierung 3
S GMF Editor mit einem zur Laufzeit erstellten Modell Plattformprogrammierung 4
B Eclpise Visual Editor Plattformprogrammierung 2
A RCP Editor-Reiter (FormEditor): Kann Rechtsklick-Menue überschrieben werden? Plattformprogrammierung 6
A RCP Tabs oben und unten im Editor oder mehrere Editoren? Plattformprogrammierung 7
B GMF Editor mit nur einem Connection Tool Plattformprogrammierung 5
T RCP - Scrollable Editor Plattformprogrammierung 4
T Speichern eines Objectes in einem Editor (mit isDirty) Plattformprogrammierung 6
J TableViewer aus Editor refreshen Plattformprogrammierung 5
T RCP Local History für eigenen Editor Plattformprogrammierung 9
L RCP Genmodel-Editor? Plattformprogrammierung 2
U Klassendiagramm-Editor (EMF, GMF, Ecore Tools) Plattformprogrammierung 3
M gmfgraph editor Plattformprogrammierung 6
L RCP View in einem Editor öffnen? Plattformprogrammierung 3
B Eclipse RCP: Kontextsensitive Buttons für Editor und Hilfebutton für Wizard hinzufügen Plattformprogrammierung 5
J RCP Default Editor öffnen? Plattformprogrammierung 5
J Code Editor auslesen? Plattformprogrammierung 3
C [GEF] gespeicherte Dateien des generierten Editor Plattformprogrammierung 5
G Editor undo/redo Plattformprogrammierung 9
Spot84 datei im editor öffnen(tutorial undurchsichtig) Plattformprogrammierung 5
G Editor anzeigen Plattformprogrammierung 2
T Setze Gradienten auf Elemente(GMF-Editor) Plattformprogrammierung 2
S Custom Editor Content Assist Plattformprogrammierung 3
G Editor und doSave() Plattformprogrammierung 19
G WYSIWYG HTML Editor als Eclipse Plug-In Plattformprogrammierung 6
K XML Editor im Project Plattformprogrammierung 12
S RCP Anfängerfrage - Zusammenspiel View, Editor, Model Plattformprogrammierung 4
D GEF Editor als RCP ausführen Plattformprogrammierung 10
G Editor Plattformprogrammierung 6
N GMF Editor automatisch generieren Plattformprogrammierung 2
H Visueller Editor für Eclipse RCP Anwendung Plattformprogrammierung 3
G xml-Datei im Editor importieren Plattformprogrammierung 3
dzim Editor aus View öffnen - fehler: unbekannte Editor ID Plattformprogrammierung 11
Paule EMF Editor Dateiverknüpfungen Plattformprogrammierung 9
Kirby.exe Tastatur und Maus reagieren nicht auf dem Login Screen Plattformprogrammierung 1
V JRE installieren oder nicht ? Plattformprogrammierung 40
M exe kann .dat nicht richtig lesen/ schreiben Plattformprogrammierung 2
Blender3D Swing Timer läuft unter Windows korrekt nicht aber unter UBUNTU Plattformprogrammierung 11
D Nach Sprachpaket Installation kann eclipse nicht mehr gestartet werden Plattformprogrammierung 4
G Nullpointer im Debugger, jedoch nicht beim normalen Starten Plattformprogrammierung 12
J Maven löst Zertifikatspfad bei HTTPS zum Repository-Server NEXUS nicht auf Plattformprogrammierung 1
P OSGi Maven build startet nicht <Unable to process "BundleTranslationProvider.locale"> Plattformprogrammierung 0
N Update auf JRE 7_71 - Klasse wird nicht gefunden? Plattformprogrammierung 3
S Maven "mvn" funktioniert nicht Plattformprogrammierung 1
B Mac Installer aus .product Datei - Programm öffnet sich nicht Plattformprogrammierung 1
K Eclipse fährt nicht mehr hoch. Metadatendatei schuld? Plattformprogrammierung 7
E Maven wird nicht mehr gefunden Plattformprogrammierung 3
S RCP Exportiertes RCP Produkt lädt Datei nicht, bei Start aus Eclipse wird Datei jedoch gefunden Plattformprogrammierung 6
R Einfaches Eclipse-Plugin-Beispiel funktioniert nicht Plattformprogrammierung 5
R RCP Application Model - Änderungen erfolgen nicht Plattformprogrammierung 17
M OSGi Erweiterung über Extension Point wird nicht erkannt Plattformprogrammierung 2
R progress bar animation funktioniert nicht Plattformprogrammierung 3
M Krieg Hallo World nicht zum laufen Plattformprogrammierung 2
C Ausführbare Jar erzeugen (Datei wird nicht gefunden) Plattformprogrammierung 4
G RCP Show View Command bestimmte View nicht erlauben Plattformprogrammierung 2
A Eclipse undo/redo button reagiert nicht auf Änderungen in der OperationHistory Plattformprogrammierung 5
H Datei in eclipse wird nicht erkannt Plattformprogrammierung 3
L RCP WelcomePage wird nicht geöffnet Plattformprogrammierung 2
M eclipse führt applikationen nicht mehr aus Plattformprogrammierung 6
R Resourcen werden im jar nicht gefunden Plattformprogrammierung 4
A RCP RAP-Bundle nach Installation nicht auffindbar?! Plattformprogrammierung 5
A OSGi Bundle exportieren, importieren und vewenden geht nicht?! Plattformprogrammierung 4
G RCP Die Anwendung {0} konnte nicht in der Registry gefunden werden. Plattformprogrammierung 3
M Eclipse - Dokumentation nicht über das Internet benutzen Plattformprogrammierung 3
D eclipse-RCP von der Konsole baut nicht Plattformprogrammierung 3
K RCP View wird nicht angezeigt Plattformprogrammierung 2
lumo RCP libraries werden nach dem export nicht gefunden Plattformprogrammierung 17
M RCP Aktivierung eines CommandHandlers, Änderungen in der plugin.xml wirken sich nicht aus... Plattformprogrammierung 2
W Wahrscheinlich triviales Problem, aber komm nicht weiter Plattformprogrammierung 7
E Common Navigator Framework erste Knoten werden nicht angezeigt Plattformprogrammierung 4
B RCP eigenes Eclipse Plugin wird nicht aufgelöst Plattformprogrammierung 7
A RCP p2 - manuelles update "check for updates" von core bundle funktioniert nicht Plattformprogrammierung 6
musiKk OSGi Bundle findet Activator nicht (ClassNotFoundException) Plattformprogrammierung 1
J Plugin wird nicht mit gestartet Plattformprogrammierung 4
G Generierte ItemColorProvider werden nicht benutzt. Plattformprogrammierung 2
G EMF -> Leere Elemente sollen in Property View nicht angezeigt werden Plattformprogrammierung 9
R eclipse - about:blank wurde nicht gefunden Plattformprogrammierung 4
O Bundle in Projekt-Dependencies nicht sichtbar Plattformprogrammierung 6
R Eclipse - Eigene JavaDoc nicht angezeigt Plattformprogrammierung 3
hdi Plugin Icon wird nicht angezeigt Plattformprogrammierung 7
S RCP Anwendung nicht weiterladen bei Exception in Plugin Plattformprogrammierung 2
P Kann exportiertes Programm nicht starten Plattformprogrammierung 14
L View nicht bekannt machen Plattformprogrammierung 4
T JDOM kann nicht eingebunden werden Plattformprogrammierung 11
M Command in Toolbar aktiv wenn View nicht aktiv Plattformprogrammierung 2

Ähnliche Java Themen


Oben