Aus einem View in das andere wecheln.

Status
Nicht offen für weitere Antworten.

Tagamoga

Mitglied
Hallo Allerseits.

Ich habe die "glorreiche" Aufgabe mich mit RCP und Java unter Eclipse auseinander zu setzen.
Dabei soll ich ein kleines Progrämmchen coden.

Stadardmäßig wird bei einem Template eine ein View mitgelifert und beim starten sofort angezeigt.
Nun soll ich eine eigene View proggen und diese per Menübefehl anzeigen, während die andere geschlossen wird.

Also griff ich mir den Ectension-Wizzard, definierte mir (nach Anleitung) eine neue View nach einem gegebenen plugin und raus kam:

Code:
package gc.views;

import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.ViewPart;

public class InitializeGameView extends ViewPart {

	public static final String ID = "NeuerView";
/**
	public InitializeGameView() {
		System.out.println("bin drin.");
		// Hier kommt "bald" die Initialisierung der Inhalte
	}
/**/
	public void createPartControl(Composite parent) {
		System.out.println("bin drin.");
		setPartName("Neuer View");

	}

	public void setFocus() {
		// TODO Auto-generated method stub

	}

}

Aufgerufen wird das folgender Weise:

Code:
public class Perspective implements IPerspectiveFactory {
	
	public void createInitialLayout(IPageLayout layout) {
		String editorArea = layout.getEditorArea();
		layout.setEditorAreaVisible(false);
		layout.setFixed(true);
		
		layout.addStandaloneView(StartView.ID, true,  IPageLayout.LEFT, 1.0f, editorArea);
		//layout.addStandaloneView(NewView.ID, true, IPageLayout.LEFT, 1.0f, editorArea);
	}
 }

lasse ich das so laufen wird der StartView erzeugt und angezeigt.
Kommentiere ich aber den StartView aus und ersetzte ihn durch "NewView" wird aber rein garnichts angezeigt.

Was mache ich da falsch?

Grüße, Maja

Edit: entschuldigt bitte, aber ich habe etwas rumprobiert und davon ist etwas in den Code gekommen. Nun stimmt er aber... hoffe ich... *bg*
 

Tagamoga

Mitglied
Hm... also wo genau soll das sein, dieses reset?

In eclipse habe ich im CodeEditor, PackageExplorer, in der plugin und im Produkt-File nachgesehen und nicht gefunden...

habe ich erwähnt, dass ich anfängerin bin? :oops:



Und wie löse ich es per ProgrammCode? die Klasse Perspektive hat doch keine Funktion, wie reset...
 

Wildcard

Top Contributor
Du musst auf dem Button (i.d.R. oben rechts) der Perspektive reset aufrufen.
Der Grund dafür ist, das sich die Perspektiven die Anordnung der Views im Workspace speichert.
Wenn du also nachträglich was änderst und die Perspektive noch gespeichert ist, wirst du keine Veränderung sehen.
 

Tagamoga

Mitglied
ah... da bist Du... ok gecheckt und gemacht. Keine Veränderung...

Vielleicht drücke ich mich aber auch nur schlecht aus.

Denn ich schreibe ein eigenes Programm, in dem zwei verschiedene Views eingefügt sind. in diesem Programm (nicht in Eclipse) soll man nun zwischen den View hin und her schlaten können. Das muss doch programmtechnisch zu lösen sein.

Ist ja irgendwie sinnfrei, wenn ich in meiner Anwendung nur die Views ändern kann, wenn ich unter eclipse jedes Mal die Perspektive reseten muss... oder?
 

Wildcard

Top Contributor
Was hat denn die Anzeige einer View zur Laufzeit mit der Definition einer Perspektive zu tun?
Eine Perspektive ist lediglich eine initiale Konfiguration von vorhandenen Views die der User anschließend anpassen kann.
 

Tagamoga

Mitglied
In einer Beschreibung zu RCP stand, dass Views nur in einer vorgenerierten Perspective erzeugt werden können und ohne diese nicht angezeigt werden können.

Sollte dann dies nicht stimmen, kannst Du mir dann bitte sagen, wie ich den einen View während der Laufzeit schließen und stattdessen den zweiten View öffne?
 

Tagamoga

Mitglied
Also im Augenblick fühle ich mich von Dir ein wenig verarscht.

Gut, am Anfang war da vielleicht noch das klassische Missverständnis. Doch wie soll mir dieser Link helfen?

Supi, da existiert ein Interface mit der Funktion hideView und ShowView... hui...

Wie komme ich an dieses Interface? Muss ich eine eigene Klasse ableiten, damit ich damit interaggieren kann? Wie gehe ich sicher, dass diese Views zur Page gehören? Wie muss ich da mit den Perspectiven hantieren (schließlich gibt es dazu ja auch genügend Funktionen diesbezüglich) etc...

Kannst Du mir das bitte normal erklären oder kennst Du vielleicht ein Tutorial?

Wenn Du aber nicht magst oder kannst, dann bitte antworte einfach nicht und lass vielleicht den anderen eine Chance. Vielleicht existiert da ja ein geduldiger Mensch, der sich auf meine Lücken - ich bin immernoch Anfänger - einlässt und es mir eklrären kann, was ich offenbar nicht verstehe.

Dennoch vielen Dank für Deine Mühe bis jetzt.
 

Wildcard

Top Contributor
Tagamoga hat gesagt.:
Also im Augenblick fühle ich mich von Dir ein wenig verarscht.

Gut, am Anfang war da vielleicht noch das klassische Missverständnis. Doch wie soll mir dieser Link helfen?

Supi, da existiert ein Interface mit der Funktion hideView und ShowView... hui...
Behandelst du Leute die dir helfen wollen immer so? :noe:
Wie soll ich bitte beurteilen können was du über Eclipse weißt und was nicht?
Die IWorkbenchPage ist ein zentrales Konzept von Eclipse. Das du damit nichts anfangen kannst, konnte ich wohl schlecht wissen, oder?
Wie du an eine IWorkbenchPage herankommst, hängt von dem Kontext ab in dem du sie brauchst. Pauschal kann ich dir darauf keine Antwort geben.
Ein ViewPart hat zum Beispiel eine init Methode:

Code:
public void init(IViewSite site) throws PartInitException
{
   super.init(site);
   IWorkbenchPage page = site.getPage();
}
 

Tagamoga

Mitglied
Wildcard hat gesagt.:
Behandelst du Leute die dir helfen wollen immer so? :noe:
Wie soll ich bitte beurteilen können was du über Eclipse weißt und was nicht?

Ich führe mehrere Übungsgruppen und Vorlesungen für Mathematik. Wenn denn jemand zu mir kommt und eine spezielle Frage hat, die mir zu nebulös erscheint oder mir Informationen fehlen, um sie zu beantworten, dann frage ich genau die Lücken ab, die mir für meine Antwort fehlen. Denn woher sollte der Anfänger von seinen Lücken wissen, wenn er es eben nicht weiß? Wie kann ich Dich von irgendetwas in Kenntnis setzten, wovon ich noch nie gehört habe?

Also wenn Du mir wirklich helfen möchtest, dann bitte fang damit an, anstatt mit kleinen unzusammenhängenden Bröckchen nach mir zu werfen, die ich unmöglich verstehen kann. :noe:

Wildcard hat gesagt.:
Ein ViewPart hat zum Beispiel eine init Methode:

Code:
public void init(IViewSite site) throws PartInitException
{
   super.init(site);
   IWorkbenchPage page = site.getPage();
}

supi... und wie nützt sie mir, wenn ich damit den ersten automatisch geöffneten View schließen möchte und den anderen anzeigen möchte? Woher bekomme ich schon wieder den korrekten Parameter für "site"? Wie komme ich überhaupt programmtechnisch an den View der überhaupt geöffnet ist? U.s.w....

Was ich habe und wie weit ich bin, steht oben im ersten Post.

Und nocheinmal: Ich bin Anfängerin, die Hilfe sucht, weil sie etwas nicht kann oder nicht versteht! Ich bin kein Java-Spezi, der sein halbes Leben nur in Eclipse codiert hatte...
 

Wildcard

Top Contributor
Tagamoga hat gesagt.:
Also wenn Du mir wirklich helfen möchtest, dann bitte fang damit an, anstatt mit kleinen unzusammenhängenden Bröckchen nach mir zu werfen, die ich unmöglich verstehen kann. :noe:
Wenn du diese 'unzusammenhängenden Bröckchen' nicht verstehen kannst, dann liegt die Aufgabe über deinen Möglichkeiten.


supi... und wie nützt sie mir, wenn ich damit den ersten automatisch geöffneten View schließen möchte und den anderen anzeigen möchte? Woher bekomme ich schon wieder den korrekten Parameter für "site"? Wie komme ich überhaupt programmtechnisch an den View der überhaupt geöffnet ist? U.s.w....
Das ist eine Methode die vom Framework aufgerufen wird und nicht von dir :roll:
Du erbst doch selbst von ViewPart, scheinst aber nicht in der Lage deren API-Doc zu lesen (und das kann man von jedem erwarten bevor er fragt, insbesondere bei Anfängern).

Ich schrieb weiter oben bereits das du mit der IWorkbenchPage eine View öffnen kannst und weiterhin schrieb ich, das man nicht pauschal sagen kann, wo man die IWorkbenchPage nun her bekommt, da es vom Kontext im dem sie benötigt wird abhängt.
Also:
Wo möchtest du IWorkbenchPage#showView aufrufen?


Ich führe mehrere Übungsgruppen und Vorlesungen für Mathematik. Wenn denn jemand zu mir kommt und eine spezielle Frage hat, die mir zu nebulös erscheint oder mir Informationen fehlen, um sie zu beantworten, dann frage ich genau die Lücken ab, die mir für meine Antwort fehlen. Denn woher sollte der Anfänger von seinen Lücken wissen, wenn er es eben nicht weiß?
Du versuchst aber auch nicht eine Gehirn-OP durchzuführen und fragst die Schwester beiläufig wie ein Skalpell aussieht.
Ich mache dir keinen Vorwurf wenn du etwas nicht weißt, aber pflaum' mich gefälligst nicht an weil dir Grundlagen fehlen die für die Erfüllung deiner Aufgabe eigentlich notwendig wären.
Frag nach und gut.
 

Tagamoga

Mitglied
Damit ich erstmal Weiß, dass mit bestimmte Grundlagen fehlen, muss ich wohl erst wissen das sie mir fehlen. Ich bin nicht hellseherisch veranlagt. Welche mir fehlen kann nur jemand mir sagen, dem es klar ist!

Wenn Du dazu nicht in der Lage bist, verschwende nicht meine Zeit, die ist nicht nur mir zu teuer.

Und natürlich liegt diese Aufgabe über meinen jetztigen Möglichkeiten, sonst hätte ich wohl kaum hier Hilfe gesucht. Du Intelligenzbolzen.

Und wenn die angemahnte Funktion eh nicht von mir aufgerufen wird, verschon das Internet mit unnötigem Traffic.

Aufgabe ist einfach und klar: ich möchte an einer beliebigen Stelle den aktuellen View schließen und den selbstgeschriebenen öffnen.

Doch Du brauchst mir nicht antworten, denn ich werde meinen account hier löschen. So werde ich das leider nicht mehr mitbekommen. Nur weiß ich, was ich für meine Vorlesungen aus Deiner Hilfearbeit ziehen werden.

nur so nebenbei: Einer hat sich über PN meiner erbarmt. Hier die Lösung:

Code:
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(ViewA.ID).dispose();
try {
	PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(ViewB.ID);
     } catch (PartInitException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

So long, nichts für ungut und danke für die Zeit.
 

Wildcard

Top Contributor
Damit hängst du die View in die aktuelle Perspektive, was nicht immer die ist, von der in deinem Eingangsposting die Rede war. Aber was red ich? Du trollst ja jetzt wo anders.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L RCP View in einem Editor öffnen? Plattformprogrammierung 3
Z Aus einem PDF-Formular heraus eine Android App Outlook starten Plattformprogrammierung 3
D JNA Referenz zu einem Array übergeben in c++ Library(dll) Plattformprogrammierung 3
F OSGi Applikation läuft einem Linux langsam, auf dem anderen normal Plattformprogrammierung 4
M Grahiti in einem RCP Projekt implementieren Plattformprogrammierung 1
D Plugin - JUnit - Tests aus einem anderen Projekt ausführen Plattformprogrammierung 7
C RCP Zwei Commands in einem Handler Plattformprogrammierung 2
C RCP Generieren eines WAR-Files aus einem lauffähigen Product Plattformprogrammierung 2
S GMF Editor mit einem zur Laufzeit erstellten Modell Plattformprogrammierung 4
S RCP Daten aus einem File auslesen, und daraus ein neues Objekt erstellen! Plattformprogrammierung 4
B GMF Editor mit nur einem Connection Tool Plattformprogrammierung 5
X Datei in einem Eclipse Projekt über Plugin zugreifen Plattformprogrammierung 2
T Speichern eines Objectes in einem Editor (mit isDirty) Plattformprogrammierung 6
E eclipse RCP Anwendung programmatisch / aus einem anderen Programme starten? Plattformprogrammierung 8
O Problem mit relativen Pfaden in einem RCP-Plugin Plattformprogrammierung 5
C Texteditor öffnet mit einem Error Plattformprogrammierung 3
M Problem beim Zugriff auf Klasse aus Fragment in einem anderen Plugin Plattformprogrammierung 3
S In einem Plugin main einer anderen Klasse aufrufen Plattformprogrammierung 18
K Einträge von einem PlugIn unterbinden. Plattformprogrammierung 6
K Editor nicht in der 'EditorArea' öffnen, sondern in einem Folder(Layout). Plattformprogrammierung 10
G Verschiedene Farben in einem Treeview Plattformprogrammierung 5
dzim Teileweise Auswahl in einem CheckboxTreeViewer? Plattformprogrammierung 3
S RCP Nach erfolgreicher Erstellung der View, wie weitermachen? Plattformprogrammierung 1
G RCP Show View Command bestimmte View nicht erlauben Plattformprogrammierung 2
S RCP ActionBar Icon nur aktiv, wenn Selection in bestimmter View Plattformprogrammierung 6
M Plugin - Property Page - Get IResource in View Plattformprogrammierung 4
R Eclipse RCP Tabellen-View (Anfängerfrage) Plattformprogrammierung 3
L RCP Eigene View für EditorPart? Plattformprogrammierung 3
M RCP TableViewer schrumpft in View nach manueller Resize auf 1 Zeile Plattformprogrammierung 5
M EMF und Tabbed Properties View Plattformprogrammierung 4
Madlip RCP View austauschen/ändern Plattformprogrammierung 9
B RCP View aktualisieren bei Änderung 2. View Plattformprogrammierung 8
F RCP EMF View Plattformprogrammierung 13
K RCP View wird nicht angezeigt Plattformprogrammierung 2
L RCP Detached View beim Starten des RCPs? Plattformprogrammierung 3
F Tollbar Items disabled wenn View den Focus verliert Plattformprogrammierung 3
S RCP name einer view ändern Plattformprogrammierung 2
L RCP Help in eine View einbinden? Plattformprogrammierung 3
G RCP Menüpunkt Show View Plattformprogrammierung 7
G EMF -> Leere Elemente sollen in Property View nicht angezeigt werden Plattformprogrammierung 9
E eclipse RCP Properties View: ein Element aus Liste pro Zeile anzeigen Plattformprogrammierung 1
Z Eclipse RCP - UDP Strom in View anzeigen Plattformprogrammierung 4
L RCP Canvas in einer View? Plattformprogrammierung 4
lumo Eclipse + 'Could not create view' Plattformprogrammierung 5
D Canvas auf View in Eclipse PlugIn Plattformprogrammierung 3
T RCP Menubar wird durch OLE-VIEW überschrieben Plattformprogrammierung 4
S Plugin: View beim Button-Klick austauschen Plattformprogrammierung 7
Saxony View als Image Plattformprogrammierung 2
S View Refreshen Plattformprogrammierung 2
T geladene Views / Event wenn View closed Plattformprogrammierung 4
S Steuerung View (Schließen erkennen/Hide anstatt Close) Plattformprogrammierung 2
S View speichern/laden beim schließen Plattformprogrammierung 14
L View schließen Plattformprogrammierung 7
L View nicht bekannt machen Plattformprogrammierung 4
lumo View aktivieren jedesmal wen.... Plattformprogrammierung 7
A Overlay in View eines anderen Plug-Ins zeichnen Plattformprogrammierung 2
A View ansprechen Plattformprogrammierung 5
T GMF Property View Plattformprogrammierung 4
M Command in Toolbar aktiv wenn View nicht aktiv Plattformprogrammierung 2
C RCP: Veraenderungen innerhalb einer View per Extension?! Plattformprogrammierung 7
T JSVGCanvas in RCP View anzeigen Plattformprogrammierung 5
ARadauer Mehrere Gui Elemente in View Plattformprogrammierung 4
B RCP - Zugriff von View auf andere View Plattformprogrammierung 4
Saxony [Eclipse RCP] Von woanders View updaten Plattformprogrammierung 11
S View aus anderen Thread aktualisieren Plattformprogrammierung 15
K Position einer Multiple View speichern Plattformprogrammierung 6
S RCP Anfängerfrage - Zusammenspiel View, Editor, Model Plattformprogrammierung 4
G View Daten übergabe. Plattformprogrammierung 4
N Nicht schließbare View? Plattformprogrammierung 7
C View updaten Teil 2 Plattformprogrammierung 2
B Eclipse RCP: View updaten Plattformprogrammierung 10
dzim Editor aus View öffnen - fehler: unbekannte Editor ID Plattformprogrammierung 11
J Editorfenster von View navigieren lassen? Plattformprogrammierung 5
R SWT: nur eine Instanz einer View erlauben Plattformprogrammierung 5
L GUI und andere Funktionen gleichzeitig laufen lassen! Plattformprogrammierung 7
N Eclipse Standalone Help - runUI und diverse andere Baustellen Plattformprogrammierung 22

Ähnliche Java Themen


Oben