Plugin - Property Page - Get IResource in View

ManIHang

Mitglied
Hallo,
Ich sitze leider leider noch bei meiner Property Page. Derzeit habe ich ein paar Textfelder und Buttons implementiert. Wird der Property Page - Apply Button angeklickt so werden die Einträge in den Textfeldern gespeichert.

Die Funktion hierfür sieht so aus.
Code:
public void setProperty(QualifiedName key, String value) {
	IResource resource = (IResource) getElement();
	try {
		resource.setPersistentProperty(key, value);
	} catch (CoreException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

Beim öffnen der Property Page wird mit der Methode getProperty die Information wieder gelesen
Code:
public String getProperty(QualifiedName key) {
	IResource resource = (IResource) getElement();
	if (key == null || resource == null) {
		return null;
	}
		
	try {
		return resource.getPersistentProperty(key);
	} catch (CoreException e) {
		return null;
	}
}

Die Informationen stehen also immer zur Verfügung meine Frage ist jetzt wie ich in einer anderen View auf diese Information zurückgreifen kann.

Zudem möchte ich ein SelectionListener verwenden, dass die View aktualisiert wird sobald der PropertyPage Apply Button gedrückt wird, falls möglich. Versuche hatte ich bereits mit dem ISelectionListener und IAdaptable gemacht jedoch keinen Erfolg zum Updaten der anderen View. Würde mich aber auch interessieren ob ich mit diesen beiden bei einer PropertyPage überhaupt richtig unterwegs bin oder ob ich nicht etwas anderes verwenden muss.

Grüße
Andi
 

ManIHang

Mitglied
Hab es leider noch immer nicht hinbekommen und leider auch noch keine Antwort.

Problem:
In der PropertyPage speichere ich den Pfad zu einem speziellen Directory ab.

In einer view oder einer klasse contentprovider möchte ich diesen pfad auslesen.
Daran scheitert es.


Bitte um Hilfe, irgendwie muss man ja an die Daten rankommen.
 

noxar

Mitglied
Nabend,

ich bin mir nicht ganz sicher, aber kannst du nicht die View in der du dein Button und deine Textfelder hast einfach mit
Java:
 getSite().setSelectionProvider(ISelectionProvider provider);
zur überwachung anmelden und in der anderen View mit
Java:
    ISelectionService selectionService = getSite().getWorkbenchWindow().getSelectionService();
    selectionService.addSelectionListener(new ISelectionListener()...);
entsprechend reagieren?

Das sollte eigentlich auch mit Buttons gehn oder irre ich da?

Hast du dabei ein ganz konkretes Problem?

Gruß
noxar
 

noxar

Mitglied
Du könntest auch einen Handler erstellen. Diesen rufst du mit dem Button auf.Die View, welche den Button enthält bekommt ein getter für die benötigten Daten. Im Handler greifst du auf die View zu, von der der handler aufgerufen wurde, wodurch du an den getter rannkommst. Dann holst du dir im Handler noch die andere View in die die Daten rein sollen, das kannst du über die ID der View machen. In der Anzeigen View schreibst du ein setter, auf den der Handler zugreift. Das ist zwar nicht besonders elegant, aber so kannst du daten zwischen Views austauschen.
 

ManIHang

Mitglied
Danke noxar, habe den selection service verwendet und es funktioniert. Im Create Part Control der View habe ich stehen.

Code:
// register other selection for this view : needs to be unregistered see dispose()
getSite().getWorkbenchWindow().getSelectionService().addSelectionListener(listener);

Im dispose

Code:
getSite().getWorkbenchWindow().getSelectionService().removeSelectionListener(listener);

Mein Selection listener selbst sieht so aus. Dieser funktioniert auf selections vom Project Explorer und Package Explorer und liest die Project Properties aus. Wenn es eine kürzere Methode gibt als diese wäre ich dankbar wenn ihr sie teilt. Mich stört die Schleife um zu einem Project zu gelangen. Die Properties können aber auch nur für ein Project gesetzt werden.

Code:
private ISelectionListener listener = new ISelectionListener() {
  public void selectionChanged(IWorkbenchPart sourcepart, ISelection selection) {

  // Works in Project Explorer and Package Explorer -> Structure Selections (Trees)
  if (selection instanceof StructuredSelection) {
    StructuredSelection ss = (StructuredSelection) selection;
    Object element = ss.getFirstElement();
				
  // Collect Informations about the Selected File
    filePath = "";
    if (element instanceof ITranslationUnit) {
      ITranslationUnit file = (ITranslationUnit) element;
      filePath = file.getPath().toOSString();
    }
				
   // Collect Project Relevant Informations for the CodeReview Path
   // Get the Project Properties - therefore go from file -> folder -> project
   reviewPath = ""; // reset the review path
   if (element instanceof ITranslationUnit || element instanceof ICContainer || 
       element instanceof ISourceRoot || element instanceof IFolder || element instanceof IProject) {
					
   while((element instanceof ITranslationUnit) || (element instanceof ICContainer) || 
     (element instanceof ISourceRoot) || (element instanceof IFolder)) {
						
   if(element instanceof ITranslationUnit) {
     ITranslationUnit file = (ITranslationUnit) element;
     element = file.getParent();
   }
   else if(element instanceof ICContainer) {
     ICContainer container = (ICContainer) element;
     element = container.getParent();
   }
   else if(element instanceof ISourceRoot) {
     ISourceRoot source = (ISourceRoot) element;
     element = source.getParent();
   }
   else if(element instanceof IFolder) {
     IFolder source = (IFolder) element;
     element = source.getParent();
   }
   }
					
   // Create an IProject via the name of the ICProject
   if(element instanceof ICProject) {
     String projectName = ((ICProject) element).getElementName();
     element = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
   }
				
   // Within this function I get
   // - the persistent properties of the project
  // - a relative path to the code review directory
  if(element instanceof IProject) {
     IProject project = (IProject) element;
					
    try {
      String pathToReviewDir = project.getPersistentProperty(PropertyPageCodeReview.REVIEW_FILE_PATH);
      if (pathToReviewDir != null && !pathToReviewDir.equals("")) {
         reviewPath = pathToReviewDir;
      }
							
     } catch (CoreException e) {
         e.getMessage();
     }
   }
  }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Eclipse Plugin PreferencePage BooleanFieldEditor Plattformprogrammierung 1
F OSGi Plugin unter Eclipse arbeitet anders als wenn veröffentlicht Plattformprogrammierung 2
R Aktuelle Datei in Plugin bearbeiten Plattformprogrammierung 2
Farbtopf Tomcat durch anderes Plugin neustarten Plattformprogrammierung 0
Farbtopf Plugin Wunsch Plattformprogrammierung 0
J Charset-Problem nach Plugin-Export Plattformprogrammierung 1
J RCP File Path von selected File in Package Explorer für RCP Plugin Plattformprogrammierung 2
TheWhiteShadow RCP Problem mit Plugin Interaktion Plattformprogrammierung 6
R Einfaches Eclipse-Plugin-Beispiel funktioniert nicht Plattformprogrammierung 5
C plugin development environment eclipse Plattformprogrammierung 4
M Keybinding in Eclipse Plugin Plattformprogrammierung 3
M RCP Plugin Extension Point ist NULL Plattformprogrammierung 7
B Eclipse Plugin Einstellungsleiste Plattformprogrammierung 2
O Eclipse Plugin - Einfachstes Problem, das es gibt. Plattformprogrammierung 2
L RCP Plugin Template erweitern Plattformprogrammierung 2
I Plugin Testen mit Fragment Project Plattformprogrammierung 2
3 Eclipse Editor Plugin selektiert Projekt nicht Plattformprogrammierung 10
A OSGi Plugin als Service exportieren und verwenden Plattformprogrammierung 12
D Plugin - Properties ohne PropertyPage speichern Plattformprogrammierung 11
T RCP Eclipse RCP: Wo/wann im Plugin ist workbench initialisiert? Plattformprogrammierung 14
V Eigenständige Applikation als Jar in Plugin einbinden Plattformprogrammierung 2
D Plugin - JUnit - Tests aus einem anderen Projekt ausführen Plattformprogrammierung 7
F [FileLocator] Verzeichnisse im Plugin Plattformprogrammierung 2
L RCP Plugin mit häufig benutzen third libraries Plattformprogrammierung 11
C Eclipse Plugin NoClassDefFoundError Plattformprogrammierung 4
M Eclipse Plugin Entwicklung - NoClassDefFoundError Plattformprogrammierung 10
C Eclipse Plugin Entwicklung: Editor für Flussdiagramme Plattformprogrammierung 6
F Ecilpse plugin und MWE Workflow: classpath Problem Plattformprogrammierung 12
M RCP Aktivierung eines CommandHandlers, Änderungen in der plugin.xml wirken sich nicht aus... Plattformprogrammierung 2
R Frage zum RCP Plugin-Mechanismus. Plattformprogrammierung 2
B RCP eigenes Eclipse Plugin wird nicht aufgelöst Plattformprogrammierung 7
P Wie bekomme ich ICompilationUnit aus dem event? bei Eclipse-Plugin Plattformprogrammierung 3
M RCP Resources Plugin nutzen und erweitern... aber wie? Plattformprogrammierung 6
X Datei in einem Eclipse Projekt über Plugin zugreifen Plattformprogrammierung 2
J Plugin wird nicht mit gestartet Plattformprogrammierung 4
D Team Plugin Erweiterung Plattformprogrammierung 4
L RCP Plugin als Bundle geklarieren? Plattformprogrammierung 3
hdi Frage zu Eclipse Plugin Development Plattformprogrammierung 12
D Canvas auf View in Eclipse PlugIn Plattformprogrammierung 3
M Eclipe RCP-Application oder Plugin Einstieg Plattformprogrammierung 6
O Problem mit relativen Pfaden in einem RCP-Plugin Plattformprogrammierung 5
hdi Plugin Icon wird nicht angezeigt Plattformprogrammierung 7
H Bibliotheken in Eclipse-Plugin-Projekt verwenden. Plattformprogrammierung 18
T Java Rcp Plugin laden Plattformprogrammierung 4
H Eclipse-Plugin erstellen Plattformprogrammierung 22
hdi Schwierigkeiten mit Plugin für EPF (Eclipse Process Framework) Plattformprogrammierung 3
S Plugin: View beim Button-Klick austauschen Plattformprogrammierung 7
M Fehler bei Plugin Export für eigene Target Platform Plattformprogrammierung 3
hdi Problem bei Eclipse Plugin Export Plattformprogrammierung 9
H Eclipse Plugin Dateihandling Plattformprogrammierung 2
S Plugin Abhängigkeiten/Circle References Plattformprogrammierung 6
G Plugin einbindung Plattformprogrammierung 9
T Erstellen eines "Ersetzten Plugin" aus GEF Plattformprogrammierung 2
S RCP Anwendung nicht weiterladen bei Exception in Plugin Plattformprogrammierung 2
A Eclipse Plugin Programmierung Dateien Refreshen Plattformprogrammierung 2
F Eclipse Plugin - Rückgabewert einer Methode Plattformprogrammierung 4
M Klasse aus PLugin /Fragment anhand von String laden Plattformprogrammierung 3
M Problem beim Zugriff auf Klasse aus Fragment in einem anderen Plugin Plattformprogrammierung 3
T Plugin eines bestehenden Editors hinzufügen Plattformprogrammierung 2
R Eclipse RCP - Plugin erstellen Plattformprogrammierung 2
lumo [Eclipse RCP] Plugin OHNE visuals Plattformprogrammierung 7
S In einem Plugin main einer anderen Klasse aufrufen Plattformprogrammierung 18
N Mit Plugin externe Dateien liefern Plattformprogrammierung 6
R Eclipse RCP vs. Plugin Entwicklung Plattformprogrammierung 5
K Einträge von einem PlugIn unterbinden. Plattformprogrammierung 6
B Eclipse plugin fuer dummys Plattformprogrammierung 11
P ViewPart dynamisch (Install/Deinstall Plugin) anzeigen in Perspektive? Plattformprogrammierung 12
N Eclipse RCP Plugin aus jar starten Plattformprogrammierung 7
M Eclipse Plugin Depedencies auslesen... Plattformprogrammierung 14
reibi Edclipse PlugIn-Entwicklung Plattformprogrammierung 21
N plugin als dependencie Plattformprogrammierung 3
N Benutzen von eigene Plugin im Plugin Plattformprogrammierung 36
N plugin dependencies innerhalb eines projects halten Plattformprogrammierung 11
R Wo/Wie Eclipse Plugin einhängen für Jar-Export? Plattformprogrammierung 14
Spot84 compareeditor in eclipsercp plugin verhält sich komisch Plattformprogrammierung 3
M Plugin wird nicht mehr geladen Plattformprogrammierung 3
M Dateien in PlugIn ansprechen Plattformprogrammierung 12
N einfaches Projekt in Plugin umwandeln Plattformprogrammierung 3
V [erledigt] Eclipse plugin startet nicht Plattformprogrammierung 3
M External JARs in Plugin Plattformprogrammierung 5
N preference page plugin Plattformprogrammierung 3
N programm in plugin umwandeln Plattformprogrammierung 3
N plugin architektur Plattformprogrammierung 15
S Eclipse-Plugin + Velocity + Files lesen Plattformprogrammierung 3
dzim immer noch Probleme bei PlugIn-Integrierung Plattformprogrammierung 2
C AST (Abstract Syntax Tree)-Generierung für Eclipse-Plugin Plattformprogrammierung 5
M Plugin JUnit Test Plattformprogrammierung 4
F RCP und JMF PlugIn Registrierung Plattformprogrammierung 6
R Plugin-Lokalisierung für Ganymede Plattformprogrammierung 12
G Plugin Export Plattformprogrammierung 4
V Javadoc an Eclipse Plugin anfügen Plattformprogrammierung 4
V JNI in Eclipse Plugin Plattformprogrammierung 17
F Eclipse plugin ausserhalb von Eclipse starten Plattformprogrammierung 4
S RCP mit canvas plugin ! Plattformprogrammierung 2
byte [ Eclipse ] NoClassDefFoundError bei neuem Plugin Plattformprogrammierung 4
rgubler Plugin mit eigenem ClassLoader Plattformprogrammierung 2
G neues project -> Plug-in project. Wie plugin starten? Plattformprogrammierung 6
G subMenue per PlugIn.xml Plattformprogrammierung 3
Linad RCP - Plugin mit Fragment Plattformprogrammierung 2
A Plugin konzepte: OSGI oder JPF? Plattformprogrammierung 5

Ähnliche Java Themen


Oben