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

SWT/JFace Java Discussion :

[RCP/JFace/Swt] Sauvegarder l'état d'une application RCP


Sujet :

SWT/JFace Java

  1. #1
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Points : 71
    Points
    71
    Par défaut [RCP/JFace/Swt] Sauvegarder l'état d'une application RCP
    Bonjour à tous,

    Dans mon application RCP,, je voudrais sauvergarder la configuration courante (vues ouvertes, contenue des tableViewers, ...) pour chaque utilisateur. La première chose que j'ai a été :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @Override
    public void initialize(IWorkbenchConfigurer configurer) {
    	super.initialize(configurer);
    	configurer.setSaveAndRestore(true);
    }
    Cela m'a permis, au redémarage de l'application de disposer des vues que j'avais avant de fermer l'appli. Cependant, je voudrais pouvoir retrouver le contenu de mes vues (contenue du tableViewer notemment). Apres avoir un peu googlé, j'ai appis que je devais utiliser l'interface IMemento et overider les méthodes init et saveState dans ma vue.

    J'ai trouvé le lien suivant, mais j'arrive toujours pas à m'en servir.

    Sauriez vous comment sauvegarder et recupérer l'état d'un tableViewer?

    Merci infiniment!

  2. #2
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Hello à tous!

    Je suis en train de vouloir overrider la méthode saveState dans ma vue. Pour rapel, cette vue, contient un tableViewer dans le quel je stocke des objets de type DataRow. Le contenu de ma classe DataRow est le suivant
    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
    // Classe représentant notre objet metier sous forme de ligne d'une base de données 
    public class DataRow {	
    	/** Numéro de la ligne*/
    	private int numRow;	
    	/** Objets contenus dans la ligne*/
    	private Object[] elements;	
     
    	public DataRow (int numRow, Object[] dataRow, Colorator colorator){
    		this.numRow = numRow;
    		this.elements = dataRow;
    		colorator.setState(this);
    	}
     
    	public int getNumRow() {return numRow;}
     
    	public void setNumRow(int numRow) {this.numRow = numRow;}
     
    	public Object[] getElements() {return elements;}
     
    	public void setElements(Object[] elements) {this.elements = elements;}
     
    	public Object getElementAt(int row){return elements[row];}	
    }
    De ce que j'ai compris, dans la méthode saveState, on sauvegarde un état qu'on restaurera ensuite.

    J'essai donc de me faire une méthode saveState en me basant sur l'exemple du tutoriel, mais je bloque completement.
    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
    public void saveState(IMemento memento) {
    	 //save selection
    	Object dataRows[] = ((IStructuredSelection) viewer.getSelection()).toArray();
    		if (dataRows.length > 0) {
    			IMemento selectionMem = memento.createChild(TAG_SELECTION);
    			for (int i = 0; i < dataRows.length; i++) {
    				IMemento elementMem = selectionMem.createChild(TAG_DATA_ROW);
    				DataRow dataRow = (DataRow) dataRows[i];
     
    				for (int j=0; j<dataRow.getElements().length; j++){
    					// Comment devrais je m'y prendre ensuite pour sauvegarder
    					// le contenu de ma case (dataRow.getElements()[i])
    				}					
    			}
    		}	
    	}		
    }
    Et une fois que cela est fait, de quelle manière vais je restaurer mes données?

    En espérant qu'une ame charitable passant par là sois un peu plus inspirée que moi.

    Merci d'avance

Discussions similaires

  1. Mémoriser l'état d'une application RCP
    Par louzorios dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 02/12/2011, 14h04
  2. Sauvegarder l'état d'une webApp
    Par morofiler dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 08/09/2011, 16h34
  3. [RCP / JFace / SWT] Lien entre vues
    Par papaetoo dans le forum SWT/JFace
    Réponses: 14
    Dernier message: 18/03/2010, 10h07
  4. [RCP] Récupérer le chemin du répertoire d'une application RCP
    Par nienor dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 21/03/2007, 09h56
  5. [RCP][plugin] comment creer des plugins pour une application RCP ?
    Par TabrisLeFol dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 20/07/2006, 16h01

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