gleiche View mehrfach öffnen?

schuetzejanett

Erfahrenes Mitglied
Hallo,

wie kann ich mehrere Instanzen einer View öffnen?

Ich möchte das wenn ich in einer tabelle auf eine zeile doppeltklicke eine andere view aufgeht welche details anzeigt. dabei soll der Titel der View sich dann aus Details und der ID der zeile zusammensetzen. Klicke ich eine andere zeile doppelt an, soll sich die view erneut nur mit den anderen daten öfffnen.
Wähle ich aber ein zeile aus deren Details ich schon geöffnet habe, soll die View nicht nochmal geöffnet werden, sondern nur den Focus erhalten.

Wie realisiere ich das in Eclipse. :?:
Wie ich über eine Action eine View öffne weiß ich aber nicht wie ich diese view mehrfach öffne und dabei die überschrift ändere, bzw prüfe ob die view schon geöffnet ist.
 
hat denn von euch noch keiner ein plugin geschrieben und musste eine view mehrfach öffnen, oder kennt zumindest einen Link, wo das thema erläutert wird? :(
 
Hallo schuetzejanett,

ich hab zwar schon nen Plugin geschriebenl, aber bisher nur mit einfachen Views, keinen mehrfach geöffneten.

Hier sind nen paar Tutorials zu RCP, vielleicht ist da ja was dabei, was hilft.

Ansonsten schau doch mal in die Perspective.java. Da werden ja die Views zugordnet, jeder View hat ja eine eindeutige ID und dazu müsste man dann nur noch ne Zählvariable packen, dann kannst schonmal die Views unterscheiden. Anschließend musst Du Dir nur noch Getter- und Setter-Methoden schreiben, für die Werte, die Du vergleichen willst, damit Du diese aus dem View bekommst.

Hoffe ich konnte wenigstens etwas Licht ins Dunkel bringen.

gruß klaus.
 
Hallo, danke für die Links aber da war nicht das richtige dabei, habe gerade in einem Buch ein code bsp gefunden aber irgendwie t es net bei mir. bekomme immer eine org.eclipse.ui.PartInitException mit der meldung: View does not allow multiple instances

Hier mal mein code: vielleicht sieht ja jemand einen fehler

Java:
public class ActionJobDetail extends Action implements IWorkbenchAction {

private final IWorkbenchWindow window;

	
	public final static String ID = "de.fullfillment.client.druckmanager.actions.ActionJobDetail";
	private int instanceNum;
	
	public ActionJobDetail(final IWorkbenchWindow window) {
		this.window = window;
		setId(ID);
		setActionDefinitionId(ID);
		setAccelerator(SWT.CTRL | 'D');
		setText("&Detailansicht@Strg+D");
		setToolTipText("Anzeige von Details.");		
		
	}
	
	@Override
	public void run() {
		if (window != null){
			 try {				 
				 IViewPart view = window.getActivePage().showView(ViewJobDetail.ID, 
						Integer.toString(instanceNum), IWorkbenchPage.VIEW_ACTIVATE); 				
				instanceNum++;
				view.setFocus();
			} catch (PartInitException e) {				
				e.printStackTrace();
			}
		}						
	}

und die perspektiv Klasse

Java:
public void createInitialLayout(IPageLayout layout) 
	{
		layout.setFixed(true);
		
		layout.addStandaloneView(ViewState.ID, false,IPageLayout.BOTTOM, 0.85f, IPageLayout.ID_EDITOR_AREA);
		//hinzufügen eines ordners um mehrere Views in einem bereich anzeigen zu können 
	
		IFolderLayout folder = layout.createFolder("top", IPageLayout.LEFT, 
        0.8f, IPageLayout.ID_EDITOR_AREA); 		
		
		folder.addView(ViewPrintJobs.ID);
		//hinzufügen eines platzhalters um view erst bei bedarf anzuzeigen
		folder.addPlaceholder(ViewAttach.ID);
		folder.addPlaceholder(ViewPrinterState.ID);
//hier ist die zeile für die gewünschte view
		folder.addPlaceholder(ViewJobDetail.ID+ ":*"); 		layout.addStandaloneView(ViewConfirm.ID, false,IPageLayout.RIGHT, 0.15f, IPageLayout.ID_EDITOR_AREA);
		
		//um Views  schließen zu können
		layout.getViewLayout(ViewAttach.ID).setCloseable(true);
		layout.getViewLayout(ViewPrinterState.ID).setCloseable(true);
		layout.getViewLayout(ViewJobDetail.ID).setCloseable(true);
		
		layout.setEditorAreaVisible(false);
 
habe den Fehler gefunden. Man muss in der plugin.xml angeben das die view mehrfach geöffnet werden kann und dann gehts auch. Jetz muss ich nur noch ehen das ich es hinbekomme das die view oben nicht nur details sondern auch noch Namen oder Nummer anzeigt und sich nicht mehrmals gleich öffnet
 
Zurück