Hallo.
Mal wieder bin ich nach langem Suchen fast verzweifelt und versuche hier wieder mein Glück.
Kurz worums geht: Ich schreibe grade ein Eclipse Plugin und im Moment hab ich Probleme mit einer View. Die View soll eine XML Datei mithilfe eines TableViewers anzeigen. Das funktioniert auch, solange die XML Datei fest im Quelltext steht.
Das ist natürlich nicht sonderlich praktisch, und deshalb möchte ich eine beliebige XML Datei anzeigen können. Übergebe ich aber einen Parameter an die Klasse, so bekomme ich eine sofort eine java.lang.InstantiationException geworfen, weil ViewPart eine abstrakte Klasse ist.
Kurzer Codeauszug:
Dieser Code funktioniert auch, alles so wie es soll.
Nun möchte ich aber eben den historyFilePath übergeben, sodass dieser nicht mehr fest im Code steht.
Versucht hab ich folgendes:
Der Konstruktor an sich wird halt ignoriert, und sonst habe ich ja keine Möglichkeit Parameter zu übergeben. Der einzige Konstruktor, der funktioniert ist der, der keine Parameter hat.
Mir ist schon bewusst, dass ich diesen Fehler provoziere, wenn ich die View einfach so öffne. Im Moment geschieht das so, dass es einen Editor gibt, wo der Dateiname angezeigt wird und man die View auf Knopfdruck öffnen kann (so zumindest soll es gehn).
Hat da jemand eine Idee, wie ich da Parameter übergeben kann?
Mal wieder bin ich nach langem Suchen fast verzweifelt und versuche hier wieder mein Glück.
Kurz worums geht: Ich schreibe grade ein Eclipse Plugin und im Moment hab ich Probleme mit einer View. Die View soll eine XML Datei mithilfe eines TableViewers anzeigen. Das funktioniert auch, solange die XML Datei fest im Quelltext steht.
Das ist natürlich nicht sonderlich praktisch, und deshalb möchte ich eine beliebige XML Datei anzeigen können. Übergebe ich aber einen Parameter an die Klasse, so bekomme ich eine sofort eine java.lang.InstantiationException geworfen, weil ViewPart eine abstrakte Klasse ist.
Kurzer Codeauszug:
Code:
public class HistoryView extends ViewPart
{
@Override
public void createPartControl(Composite parent)
{
historyFilePath = "G:\\";
history = new HistoryFile(historyFilePath, "history.xml");
new HistoryTable(parent, history);
}
}
Dieser Code funktioniert auch, alles so wie es soll.
Nun möchte ich aber eben den historyFilePath übergeben, sodass dieser nicht mehr fest im Code steht.
Versucht hab ich folgendes:
Code:
public class HistoryView extends ViewPart
{
String historyFilePath;
public HistoryView(String historyFilePath)
{
this.historyFilePath = historyFilePath;
}
@Override
public void createPartControl(Composite parent)
{
history = new HistoryFile(historyFilePath, "history.xml");
new HistoryTable(parent, history);
}
}
Der Konstruktor an sich wird halt ignoriert, und sonst habe ich ja keine Möglichkeit Parameter zu übergeben. Der einzige Konstruktor, der funktioniert ist der, der keine Parameter hat.
Mir ist schon bewusst, dass ich diesen Fehler provoziere, wenn ich die View einfach so öffne. Im Moment geschieht das so, dass es einen Editor gibt, wo der Dateiname angezeigt wird und man die View auf Knopfdruck öffnen kann (so zumindest soll es gehn).
Hat da jemand eine Idee, wie ich da Parameter übergeben kann?
Zuletzt bearbeitet: