Bonjour,
je suis nouveau sur le forum donc j'espère ne pas me tromper sur l'endroit ou poster mon problème.
Voilà je dois écrire un programme avec Zest qui dois lire un fichier XML et le traduire sous forme d'arbre. Pour cela j'ai créé un plugin "with view" mais je n'ai pas tout compris sur le fonctionnement de SampleView et activator. je n'utilise jamais c'est deux classes.
J'ai donc écris mon Programme en utilisant java comme je le connais: avec une classe pour Créer un type noeud, une classe Graphique qui me dessine mon graphique et écrit un fichier dans un "canvas" et une classe Controleur pour gérer les cliques et les actions dans le "shell".
Mon problème est le suivant, quand j'exécute mon 'main', je suis obliger de passer en paramètre mon fichier, j'aurais aimer pouvoir rappeler ce main avec comme paramètre le chemin retourné par ma fonction ouvrir de mon contrôleur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public static void Ouvrir (MenuItem optionOuvrir){ optionOuvrir.setText("Ouvrir"); optionOuvrir.addListener(SWT.Selection, new Listener() { public void handleEvent(Event e) { String nomFichier; FileDialog dialog = new FileDialog(g.getShell(), SWT.OPEN); dialog.setFilterPath("d:/"); nomFichier = dialog.open(); if ((nomFichier != null) && (nomFichier.length() != 0)){ String [] s= {nomFichier}; try { Principal.main(s); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } }); }
voici mon main:
je ne comprends pas pourquoi cela ne me recréé pas une nouvelle fenêtre avec le traitement sur le même fichier. est ce que quelqu'un pourrait m'éclaircir un peu sur mon problème ? Merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 public static void main (String args[]) throws Exception { // chemin de fichier à annalyser String s = args[0]; s = Principal.ChaineChemin (s); // Fenêtre ( graphique + fixhier XML) Graphique graph = new Graphique(); // contôleur de la fenêtre Controleur controle = new Controleur(graph); controle.Menu(); XMLReader xr = XMLReaderFactory.createXMLReader(); ArrayList<String> ln = Principal.annalyse(xr,s); if (!ln.isEmpty()){ noeud d = new noeud (ln.get(0),graph); graph.Trace(ln,graph,0,d); } File f = new File(s); String FICHIER = loadFile(f); graph.affiche(FICHIER); }
Partager