IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse Platform Discussion :

Rafraichir le TreeView du 'Project Explorer' par le code


Sujet :

Eclipse Platform

  1. #1
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 102
    Points : 50
    Points
    50
    Par défaut Rafraichir le TreeView du 'Project Explorer' par le code
    Bonjour,

    Je développe un plugin qui ajoute des fichiers dans les différents projets de mon workspace.
    Mais voila, à chaque ajout dans un dossier je voudrais que l'arborescence de mes projets (Project Explorer) soit rafraichie.

    Quelqu'un saurait-il m'indiquer comment faire ?

    Merci d'avance pour votre aide.

  2. #2
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Comment ajoutes-tu les fichiers dans les projets de ton workspace?

    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  3. #3
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 102
    Points : 50
    Points
    50
    Par défaut
    Exemple de fonction me permettant de copier des jars de mon plugin vers un projet du workspace :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    public void copyJars(){
        //à verifier dans le cas ou le projet ne se trouve pas dans le workspace
        Bundle myBundle = Platform.getBundle(Activator.PLUGIN_ID);
        String s=myBundle.getLocation().substring(16,myBundle.getLocation().toString().length()-1);
        String d=Platform.getLocation()+"//"+uno.getCombo().getText();
        String sProtocol=MetaData.mabase.getMacx().getMonUrl().getSous_protocol();
        if(sProtocol.equals("mysql")){
            s+=myBundle.getEntry("//lib//mysql-connector-java-5.1.6-bin.jar").getFile();
            d+="//lib//mysql-connector-java-5.1.6-bin.jar";
        }else if(sProtocol.equals("oracle8p")){
            s+=myBundle.getEntry("//lib//ojdbc14.jar").getFile();
            d+="//lib//ojdbc14.jar";
        }else{//à completer
            s+=myBundle.getEntry("//lib//ojdbc14.jar").getFile();
            d+="//lib//ojdbc14.jar";
        }        
        File source = new File(s);
        File dest = new File(d);
        if (dest.exists())
            return;
        try{
            File f=new File(Platform.getLocation()+"//"+uno.getCombo().getText()+"//lib");
            f.mkdirs();
            java.io.FileInputStream sourceFile = new java.io.FileInputStream(source);              
            try{
                java.io.FileOutputStream destinationFile = null;              
                try{
                    destinationFile = new FileOutputStream(dest);                
                    byte buffer[] = new byte[512 * 1024];
                    int nbLecture;                
                    while ((nbLecture = sourceFile.read(buffer)) != -1){
                        destinationFile.write(buffer, 0, nbLecture);
                    }
                } finally {
                    destinationFile.close();
                }
            } finally {
                sourceFile.close();
            }
        } catch (IOException e){
            e.printStackTrace();
        }
    }
    Ce que je veux c'est pouvoir rafraichir l'arborescence des projets directement à partir du code.

    Merci!!

  4. #4
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Alors une meilleure méthode pour arriver à ce que tu veux est, il me semble, la suivante:
    Tout d'abord, il te faut ajouter une dépendance au plug-in org.eclipse.core.resources.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IWorkspace workspace = ResourcesPlugin.getWorkspace();
    IWorkspaceRoot workspaceRoot = workspace.getRoot();
    IProject myProject = workspaceRoot.getProject("MyProject");
    IFile myFileToCopy = myProject.getFileForLocation(new Path("my/file/full/location/in/project"));
    myFileToCopy.create(myInputStream, true, new NullProgressMonitor());
    • myInputStream correspond au InputStream sur le fichier que tu veux ajouter à ton workspace.
    • my/file/full/location/in/project est le chemin complet dans le projet du fichier que tu veux ajouter.


    Le rafraîchissement de ton workspace se fera automatiquement.

    Voilà à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  5. #5
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 102
    Points : 50
    Points
    50
    Par défaut Salut!!
    Désolé j'ai essayé, mais je ne m'en sors pas.
    Est-il possible d'avoir l'identifiant de la vue Package explore et le nom de la variable de son treeview?
    Merci!!

  6. #6
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Citation Envoyé par barzane Voir le message
    j'ai essayé, mais je ne m'en sors pas.
    C'est pas vraiment un message d'erreur ça...
    Sur quoi tu bloques? La façon de faire que je t'ai indiqué est la plus propre et la plus maintenable. Alors, plutôt que de courir à la facilité, indique nous quels sont tes problèmes.

    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

Discussions similaires

  1. Rafraichir le Project Explorer de façon programmatique
    Par fanototo dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 30/09/2013, 00h53
  2. [Project] Lecture par le commun des mortels
    Par romaik dans le forum Microsoft Office
    Réponses: 2
    Dernier message: 07/09/2007, 09h08
  3. [Syntaxe]rafraichir une liste avec internet explorer
    Par achos dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 27/02/2007, 17h26
  4. [VBa-E] TreeView comme Windows Explorer?
    Par gootsu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/07/2006, 10h06
  5. [VB.NET] Selectionner un noeud du treeview par le code
    Par Elbarto dans le forum Windows Forms
    Réponses: 7
    Dernier message: 23/02/2006, 10h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo