Eclipse Editor Plugin selektiert Projekt nicht

3n00b

Mitglied
Hallo!

Ich habe ein Multipage-Editor Plugin für Eclipse geschrieben um Konfigurationsdateien komfortabel editieren zu können. Wenn der Editor aktiv ist wird jedoch das Projekt welches die editierte Datei enthält nicht selektiert/aktiviert. Das äußert sich z.B. darin das der Build-Button ausgegraut ist wärend man im Editor arbeitet.

Ich habe nun schon Stunden mit der Suche verbracht, habe aber leider keine Idee was ich ändern muss um die Beziehung zwischen Editor, Datei und Projekt herstellen zu können. Ich hoffe hier im Forum hat jemand eine Idee und kann mir weiterhelfen?
 

Wildcard

Top Contributor
Du redest von Project Explorer/Package Explorer?
Diese beiden Views haben einen 'Link Selection' Button. Der führt dazu, dass die aktuell editierte Datei selektiert wird, nicht jedoch das Projekt. Insofern weiß ich nicht wie du auf die Idee kommst, dass das Projekt selektiert werden sollte.
 

3n00b

Mitglied
Der "Link with Editor"-Button im Project Explorer arbeitet korrekt. Also die Datei wird richtig selektiert wenn mein Editor aktiv ist. Was ich aber leider nicht hinbekomme ist, dass der Project-Build-Button zusammen mit meinem Editor funktioniert.

Wenn eine Datei aus dem Project Explorer in meinem Editor geöffnet wurde, sollte man in der Lage sein über den "Build"-Button ("Build the active configurations of the selected projects") das aktuelle Projekt zu bauen, so wie es mit dem Default-Editor auch möglich ist. Wenn jetzt aber mein eigener Editor aktiv ist wird der Build-Button ausgegraut, da Eclipse die Datei vermutlich keinem Projekt zuordnen kann, bzw. mein Editor kein Projekt "selektiert". Meine Frage ist wie ich genau das bewerkstelligen kann.
 

3n00b

Mitglied
Das ist der Button mit dem Hammer-Symbol in der Symbol-Leiste des Hauptfensters. Auch zu finden über das Menü (project >> make target >> build...) oder durch drücken von SHIFT+F9.

Diese Aktion startet den Build-Vorgang der aktuell selektierten Projekte, abhängig von den jeweiligen Projekt-Einstellungen.
 

3n00b

Mitglied
Der Build-Button ist zum Beispiel in der C/C++ Perspective sichtbar (CDT Plugins).

Das der Build Button nicht funktioniert ist aber nur ein Effekt. Ein weiterer ist das die Projekt-Team-Verwaltung keine Benachrichtigung bekommt wenn eine Datei unter Versionskontrolle in meinem Editor bearbeitet wird (für ein automatisches Check-out notwendig). Vermutlich geschieht dies aus denselben Gründen warum auch der Build-Button nicht funktioniert, da die Zuordnung von Datei zum Projekt und damit der Team-Kontrolle nicht funktioniert.
 

Wildcard

Top Contributor
Dieser Build Button ist dann C spezifisch. Du musst dir also dessen Implementierung ansehen, oder in der CDT Developer Doku falls dazu etwas vermerkt ist.

Ein weiterer ist das die Projekt-Team-Verwaltung keine Benachrichtigung bekommt wenn eine Datei unter Versionskontrolle in meinem Editor bearbeitet wird (für ein automatisches Check-out notwendig). Vermutlich geschieht dies aus denselben Gründen warum auch der Build-Button nicht funktioniert, da die Zuordnung von Datei zum Projekt und damit der Team-Kontrolle nicht funktioniert.
Ich weiß wirklich nicht was du dir darunter vorstellst. Es gibt keine Datei Projektzuordnung, ausser das ein IFile sein Projekt kennt (und das geschieht ohne dein Zutun).
Es gibt auch nicht die Teamkontrolle, alles in Eclipse ist Modular. Es gibt verschiedene Team Provider wie CVS, SVN, Git. Die funktionieren normalerweise über Resource Change Events, werden also aktiv wenn du eine Datei über die IFile API veränderst. Aber was genau passiert hängt vom konkreten Team Provider ab. Also ohne mehr Informationen zu haben kann ich dir nicht helfen.
 

3n00b

Mitglied
Es gibt zwar nicht "die" Team-Kontrolle, aber alle sollten auf demselben Mechansimus (IFile Events?) aufbauen (oder gibt es noch andere Möglichkeiten Dateiänderungen mitgeteilt zu bekommen?). Somit sollte das eigentlich für meinen Editor auch funktionieren, zumindest wenn ich dort keinen Fehler habe. Ich werde mir mal die CDT Implementierung genauer ansehen, vielleicht finde ich dort heraus warum der Build-Button nicht funktioniert.

Vielen Dank für die Hilfe!
 
Zuletzt bearbeitet:

3n00b

Mitglied
Für das Problem mit dem CDT Build-Button könnten die folgenden Zeilen aus org.eclipse.cdt.ui.actions.ChangeBuildConfigActionBase relevant sein. Für meinen Form-Editor wird anscheinend kein Projekt zur Liste (fProjects) hinzugefügt. Ich werde das mal näher untersuchen.

[JAVA=151]
/**
* selectionChanged() event handler. Fills the list of managed-built projects
* based on the selection. If some non-managed-built projects are selected,
* disables the action.
* @param action The action
* @param selection The selection
*/
protected void onSelectionChanged(IAction action, ISelection selection) {
fProjects.clear();

boolean badObject = false;

if (selection != null )
{
if (selection instanceof IStructuredSelection) {
if (selection.isEmpty()) {
// could be a form editor or something. try to get the project from the active part
IWorkbenchPage page = CUIPlugin.getActivePage();
if (page != null) {
IWorkbenchPart part = page.getActivePart();
if (part != null) {
Object o = part.getAdapter(IResource.class);
if (o != null && o instanceof IResource) {
fProjects.add(((IResource)o).getProject());
}
}
}
}
[/code]
 
Zuletzt bearbeitet:

3n00b

Mitglied
Wie es aussieht fehlt meiner EditorPart Klasse nur das IResource Adapter. CDT ermittelt das zugehörige Projekt über die Funktion IResource.getProject(). Die Lösung meines Problems ist folgende Methode in meiner EditorPart Klasse:

Java:
   public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) {
      if (IResource.class.equals(adapter)) {
         try {   
            return ((IFileEditorInput)getEditorInput()).getFile().getAdapter(adapter);
         }
         catch(Exception e) {
         }
      }
      
      return super.getAdapter(adapter);
   }
 
Zuletzt bearbeitet:

Wildcard

Top Contributor
Eher so:
Java:
      if (IResource.class.equals(adapter)) {
         try {   
            return ((IFileEditorInput)getEditorInput()).getFile();
         }
         catch(Exception e) {
         }
      }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Eclipse Plugin Entwicklung: Editor für Flussdiagramme Plattformprogrammierung 6
TheWhiteShadow RCP Konstrukt für Editor in Eclipse gesucht. Plattformprogrammierung 3
G RCP Eclipse Editor + Guice Plattformprogrammierung 8
B Eclipse RCP: Kontextsensitive Buttons für Editor und Hilfebutton für Wizard hinzufügen Plattformprogrammierung 5
G WYSIWYG HTML Editor als Eclipse Plug-In Plattformprogrammierung 6
H Visueller Editor für Eclipse RCP Anwendung Plattformprogrammierung 3
E OSGi Eclipse Plug-in programmierung: java.lang.NullPointerException: Cannot enter synchronized block because "profile" is null Plattformprogrammierung 4
R Eclipse Bundles Plattformprogrammierung 2
Robertop RCP Command in bereits bestehendes Eclipse-Menü einbauen Plattformprogrammierung 4
T Java Projekt läuft nur in Eclipse Plattformprogrammierung 6
M Eclipse Plugin PreferencePage BooleanFieldEditor Plattformprogrammierung 1
F OSGi Plugin unter Eclipse arbeitet anders als wenn veröffentlicht Plattformprogrammierung 2
D RCP P2-Repository für Eclipse-Plugins Plattformprogrammierung 0
M Debuging in Eclipse Annotations Processor Plattformprogrammierung 0
D Nach Sprachpaket Installation kann eclipse nicht mehr gestartet werden Plattformprogrammierung 4
L0MiN Wie kann ich ein Klassendiagramm aus Eclipse heraus erstellen? Plattformprogrammierung 5
M Eclipse Probleme beim Ausführen eines Programms Plattformprogrammierung 3
feinperligekohlensaeure Eclipse Workspace gemeinsam Nutzen -> keine .project Datei Plattformprogrammierung 1
F Eclipse Build Path auf benötigte Projekte Plattformprogrammierung 4
B Daten von Eclipse extern sichern Plattformprogrammierung 2
B Eclipse zeigt Fehler nach Java-Update auf 1.8.0_40 Plattformprogrammierung 3
VfL_Freak [Eclipse] Fehleranzeige im Reiter "Problems" Plattformprogrammierung 1
S Errors in workspace bei eclipse Plattformprogrammierung 3
T eclipse bietet keine META-INF an Plattformprogrammierung 1
N Eclipse wo starten Plattformprogrammierung 6
A Eclipse schließt einfach ohne Fehlermeldung Plattformprogrammierung 4
W Eclipse vergißt beim Exportieren Resources-Ordner Plattformprogrammierung 11
A RCP Eclipse e4 und Injection-Contexts Plattformprogrammierung 0
K Eclipse fährt nicht mehr hoch. Metadatendatei schuld? Plattformprogrammierung 7
C [Eclipse RCP E4]InjectionException: no actual value was found for the argument "MDirtyable" Plattformprogrammierung 8
T Eclipse Eigenschaften hinzufügen Plattformprogrammierung 2
M RCP [Eclipse RCP 3.4] ViewTab Kontextmenu "Alle schließen" Plattformprogrammierung 0
D Problem mit eclipse Plattformprogrammierung 2
S Verschieben des Verzeichnis .eclipse aus Userprofile Plattformprogrammierung 3
A RCP Kann kein Eclipse 4 Projekt anlegen Plattformprogrammierung 0
S RCP Exportiertes RCP Produkt lädt Datei nicht, bei Start aus Eclipse wird Datei jedoch gefunden Plattformprogrammierung 6
G Eine Library in Eclipse zur Verfügung stellen Plattformprogrammierung 14
Gregorrr Eclipse RCP Product Build-Nummer + Jenkins Plattformprogrammierung 6
R Einfaches Eclipse-Plugin-Beispiel funktioniert nicht Plattformprogrammierung 5
H OSGi OSGi + Logback + slf4j - Eclipse Run Configuration Plattformprogrammierung 7
C plugin development environment eclipse Plattformprogrammierung 4
R RCP Commands nutzen / org.eclipse.ui.file.save Plattformprogrammierung 7
O Installiere externe Methode "containsNone" in Eclipse Plattformprogrammierung 2
M Keybinding in Eclipse Plugin Plattformprogrammierung 3
B Eclipse Probleme mit build Plattformprogrammierung 8
H Keine Hilfe/API mehr in Eclipse Juno? Plattformprogrammierung 4
B Neue SuppressWarning in Eclipse Juno Plattformprogrammierung 6
B Eclipse Property Page Plattformprogrammierung 6
B Eclipse PreferencePage Plattformprogrammierung 3
B Eclipse Plugin Einstellungsleiste Plattformprogrammierung 2
B Birt-Previewer über Eclipse Plattformprogrammierung 14
J Eclipse Plug-In für UML-Diagramme Problem Plattformprogrammierung 4
O Eclipse Plugin - Einfachstes Problem, das es gibt. Plattformprogrammierung 2
R Eclipse RCP Tabellen-View (Anfängerfrage) Plattformprogrammierung 3
C Eclipse: Notification beim umbennen von Methoden? Plattformprogrammierung 4
schalentier Eclipse Sourcecode Plattformprogrammierung 4
A Eclipse undo/redo button reagiert nicht auf Änderungen in der OperationHistory Plattformprogrammierung 5
P Eclipse M2_REPO (NON MODIFIABLE) Plattformprogrammierung 8
B Eclipse: Contextmenu id erhalten? Plattformprogrammierung 9
H Datei in eclipse wird nicht erkannt Plattformprogrammierung 3
O Neues Tastenkürzel für Eclipse Editorfenster registrieren Plattformprogrammierung 2
Madlip RCP eclipse.ui.bindings (Key-Problematik) Plattformprogrammierung 2
S Eclipse vs. JavaMail vs. Ubuntu vs. Windows Plattformprogrammierung 3
M eclipse führt applikationen nicht mehr aus Plattformprogrammierung 6
S Eclipse: Auf CTRL-C/CTRL-V im Package Explorer? Plattformprogrammierung 4
M Eclipse und Hilfen Plattformprogrammierung 5
G Eclipse buggt rum!!! Plattformprogrammierung 4
B Eclipse RCP und Java 7 Plattformprogrammierung 7
T RCP Eclipse RCP: Wo/wann im Plugin ist workbench initialisiert? Plattformprogrammierung 14
G Eclipse Plug-in: wie refreshe ich eine combobox? Plattformprogrammierung 4
M Eclipse Plug-in: Wie eine Grafik einfügen? Plattformprogrammierung 20
M RCP [Eclipse RCP] Feature Export und "Fehler"... Plattformprogrammierung 3
P Eclipse speichert keine Änderungen Plattformprogrammierung 5
M Eclipse - Dokumentation nicht über das Internet benutzen Plattformprogrammierung 3
C Eclipse Plugin NoClassDefFoundError Plattformprogrammierung 4
E org.eclipse.ui.dialogs.ListSelectionDialog erzeugt ClassNotFoundException zur Laufzeit Plattformprogrammierung 4
M Eclipse Plugin Entwicklung - NoClassDefFoundError Plattformprogrammierung 10
C RCP Verständnisfrage Eclipse/Equinox Plattformprogrammierung 4
D eclipse-RCP von der Konsole baut nicht Plattformprogrammierung 3
L RCP Eclipse Popupmenu im PackageExplorer erweitern? Plattformprogrammierung 7
S (OSGI - EQUINOX) Welche Eclipse IDE? Plattformprogrammierung 3
C Pdf in jar datei einbinden mit eclipse Plattformprogrammierung 23
G neuer branch in SVN mit Eclipse Plattformprogrammierung 6
F RCP eclipse rcp ohne eclipse? Plattformprogrammierung 15
dzim RCP Eclipse Provisioning Plattformprogrammierung 3
G RCP Abhängigkeiten von Eclipse Plugins Plattformprogrammierung 9
K Eclipse RCP, EMF, Hibernate Problem Plattformprogrammierung 7
B RCP eigenes Eclipse Plugin wird nicht aufgelöst Plattformprogrammierung 7
T Eclipse Helios XMLUnit importieren Plattformprogrammierung 6
R Verwendung pdfbox in Maven-Projekt in Eclipse Plattformprogrammierung 3
lumo RCP wechseln der Font von Eclipse per code Plattformprogrammierung 10
lumo RCP Eclipse internationalisierung Plattformprogrammierung 5
jemandzehage Kurze Fehlernachricht beim starten in Eclipse Plattformprogrammierung 5
A RCP java.lang.ClassNotFoundException: org.eclipse.core.runtime.adaptor.EclipseStarter Plattformprogrammierung 7
P Wie bekomme ich ICompilationUnit aus dem event? bei Eclipse-Plugin Plattformprogrammierung 3
Rudolf External Libs dauerhaft in Eclipse einbinden Plattformprogrammierung 3
G RCP Eclipse UI Forms Plattformprogrammierung 10
musiKk RCP Eclipse: Speichern von Spaltenbreiten Plattformprogrammierung 9
X Datei in einem Eclipse Projekt über Plugin zugreifen Plattformprogrammierung 2
P Eclipse Help: Wie Links zu anderer Hilfeseite setzen ? Plattformprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben