none
fermer et ouvrir des fenètres sous eclipse RRS feed

  • Question

  • bonjour

    J'ai le code suivant quine compile pas

    	public int RecupereNomDesFichier() throws ClassNotFoundException, IllegalArgumentException, NullPointerException, SQLException
    	{
    		int selectedId;
    		String selectedFile;
    		if( InterbaseManager.connection == null)
    			MissionDatabaseManager.OpenDatabaseCoherence();
    		ArrayList<ElementWork> elementWorks = MissionDatabaseManager.ReadWork();
    		// charger les fichier de la base de donnée et remplir cette liste
    		performFinish();
    		try
    		{
    			Iterator<ElementWork> itWork = elementWorks.iterator();
    			FileDialog fileDialog = new FileDialog( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()); 
    			while( itWork.hasNext())
    			{
    				elementWork = (ElementWork)itWork.next();
    				int id = elementWork.Id;
    				String str = elementWork.wsText;
    			}
    			// selectedFile contient le path vers le fichier seléctionner
    			selectedFile = ((MessageDialog) fileDialog).open();
    			selectedId = ((MessageDialog) fileDialog).open();
    		}
    		catch(NullPointerException ex)
    		{
    			ex.printStackTrace();
    		}
    		catch( java.lang.ClassCastException ex)
    		{
    			ex.printStackTrace();
    		}
    		buildModel( selectedId, selectedFile);
    		// ToDo il faut ressortir le numéro saisi par l'utilisateur
    		return( selectedId);
    	}

    les erreurs sont:

    new FileDialog( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()); The constructor FileDialog(Shell) is undefined
    ((MessageDialog) fileDialog).open();Cannot cast from FileDialog to MessageDialog
    ((MessageDialog) fileDialog)Cannot cast from FileDialog to MessageDialog

    qui m'aidera sera :ccool:


    Jean Noël Martin


    mercredi 6 mai 2015 09:41

Toutes les réponses

  • Le code suivant compile mais ne fait pas ce que je veux à l'exécution

    package com.all4tec.matelo.linguistique.wizards;
    
    import static com.all4tec.matelo.linguistique.utils.Utils.createChain;
    import static com.all4tec.matelo.linguistique.utils.Utils.setMacroState;
    import static com.all4tec.matelo.linguistique.utils.Utils.setlink;
    
    import org.eclipse.core.runtime.Assert;
    import org.eclipse.core.runtime.IProgressMonitor;
    import org.eclipse.core.runtime.IStatus;
    import org.eclipse.core.runtime.OperationCanceledException;
    import org.eclipse.core.runtime.ProgressMonitorWrapper;
    import org.eclipse.core.runtime.Status;
    import org.eclipse.jface.util.Policy;
    import org.eclipse.swt.widgets.Display;
    import java.awt.Frame;
    import java.lang.reflect.InvocationTargetException;
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import org.eclipse.jface.operation.IRunnableWithProgress;
    import org.eclipse.jface.viewers.IStructuredSelection;
    import org.eclipse.jface.wizard.IWizardPage;
    import org.eclipse.jface.wizard.Wizard;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.widgets.FileDialog;
    import org.eclipse.ui.IImportWizard;
    import org.eclipse.ui.IWorkbench;
    import org.eclipse.ui.PlatformUI;
    
    import com.all4tec.matelo.datamodel.diagram.IDiagram;
    import com.all4tec.matelo.datamodel.diagram.IMacroState;
    import com.all4tec.matelo.datamodel.diagram.IState;
    import com.all4tec.matelo.datamodel.diagram.ITransition;
    import com.all4tec.matelo.datamodel.probabilities.Frequency;
    import com.all4tec.matelo.datamodel.project.IChain;
    import com.all4tec.matelo.datamodel.resources.utils.ResourceUtils;
    import com.all4tec.matelo.linguistique.utils.Utils;
    import com.all4tec.matelo.linguistique.wizards.Structure.ElementWork;
    import com.all4tec.matelo.linguistique.wizards.pages.LinguistiqueImportWizardPage;
    import com.all4tec.matelo.utils.managers.projects.ProjectsManager;
    import com.all4tec.matelo.utils.managers.resources.ResourceManager;
    
    public class LinguistiqueImportWizard<avantDernierePage> extends Wizard implements IImportWizard {
    
    	private LinguistiqueImportWizardPage linguistiquePage;
    	private IWizardPage avantDernierePage;
    	public ElementWork elementWork;
    	private boolean initialized = false;
    
    	public LinguistiqueImportWizard() 
    	{
    		// TODO Auto-generated constructor stub
    	}
    
    	@Override
    	public void init(IWorkbench workbench, IStructuredSelection selection)
    	{
    	}
    	public void addPages()
    	{
    	    // les noms de classes sont instanciées
    		addPage( (IWizardPage) new LinguistiqueImportWizardPage( "Linguistique"));
    	}
    	public void addAvDerPage(ArrayList<ElementWork> elementWorks)
    	{
    		addPage( (IWizardPage) new LinguistiqueImportWizardPage( "Get File"));
    	}
    	    
    	
    
    	// cette méthode sera appelée par l'API lors de passage à la place suivante
    	public int RecupereNomDesFichiers() throws ClassNotFoundException, IllegalArgumentException, NullPointerException, SQLException
    	{
    		int selectedId = 0;
    		int integerToBeDefined = 0;
    		Iterator itWork;
    		String SelectedFile = null;
    		performFinish();
    		if( InterbaseManager.connection == null)
    			MissionDatabaseManager.OpenDatabaseCoherence();
    		ArrayList<ElementWork> elementWorks = MissionDatabaseManager.ReadWork();
    		// charger les fichiers de la base de données et remplir cette liste
    		try
    		{
    			// il faut afficher une form et la remplire avec les elementsWorks
    			addAvDerPage( elementWorks);
    			// selectedFile doit contenir le path vers le fichier seléctionné
    			getNextPage( elementWorks);
    			//puis onparcours la liste des fichiers pour trouver l'identifiant
    			itWork = ((Iterable<ElementWork>)elementWorks).iterator();
    			while( itWork.hasNext())
    			{
    				elementWork = (ElementWork)itWork.next();
    				int id = elementWork.Id;
    				String wsText = elementWork.wsText;
    			}
    		}
    		catch(NullPointerException ex)
    		{
    			ex.printStackTrace();
    		}
    		catch( java.lang.ClassCastException ex)
    		{
    			ex.printStackTrace();
    		}
    		catch( org.eclipse.swt.SWTException ex)
    		{
    			ex.printStackTrace();
    		}
    		buildModel( selectedId, SelectedFile);
    		// ToDo il faut ressortir le numéro saisi par l'utilisateur
    		return( selectedId);
    	}
    
    	public void getNextPage( ArrayList<ElementWork> elementWorks)
    	{
    		int selectedId = 0;
    		String selectedFile;
    		Iterator itWork;
    		
    		avantDernierePage =  super.getNextPage( (IWizardPage) elementWorks);
    		// ICI tu peux mettre le code pour charger les données dans page, à partir de celle qui ont été fourni dans la page courante et les précédentes : par exemple, tu pourrais simplement mettre une méthode dans DernierePage que tu appelles ici sur l'instance dans la variable page
    		itWork = ((Iterable<ElementWork>)elementWorks).iterator();
    		while( itWork.hasNext())
    		{
    			elementWork = (ElementWork)itWork.next();
    			int id = elementWork.Id;
    			String wsText = elementWork.wsText;
    		}
    	}
    
    	public ElementWork RecupereIdDuFichier() {
    		elementWork = linguistiquePage.getSelectedElementWork();
    		return elementWork;
    	}
    
    	@Override
    	public IWizardPage getNextPage(IWizardPage page) {
    		if (false == initialized) {
    			initialized = true;
    			if (page instanceof LinguistiqueImportWizardPage) {
    				final List<ElementWork> elementWorks = new ArrayList<ElementWork>();
    				IRunnableWithProgress runnableWithProgress = new IRunnableWithProgress() {
    					@Override
    					public void run(IProgressMonitor monitor)
    							throws InvocationTargetException,
    							InterruptedException
    							{
    						try
    						{
    							Connection connection = MissionDatabaseManager.OpenDatabaseCoherence();
    							int iIdDoc = RecupereNomDesFichiers();
    						}
    						catch( ClassNotFoundException e)
    						{
    							// TODO Auto-generated catch block
    							e.printStackTrace();
    						}
    						catch( IllegalArgumentException e)
    						{
    							// TODO Auto-generated catch block
    							e.printStackTrace();
    						}
    						catch( NullPointerException e)
    						{
    							// TODO Auto-generated catch block
    							e.printStackTrace();
    						}
    						catch( SQLException e)
    						{
    							// TODO Auto-generated catch block
    							e.printStackTrace();
    						}
    						monitor.done();
    					}
    				};
    				try {
    					getContainer().run(true, false, runnableWithProgress);
    				} catch (InvocationTargetException e) {
    					e.printStackTrace();
    				} catch (InterruptedException e) {
    					e.printStackTrace();
    				}
    				linguistiquePage.setElementWorkss(elementWorks);
    				return page;
    			}
    		}
    		return super.getNextPage(page);
    	}
    
    	IDiagram diagram;
    	public void buildModel(int iIdDoc, String path)
        {
        	IChain chain = createChain( path);
    		ProjectsManager.getInstance().getActiveProject().getChains().add(chain);
    		ResourceUtils.saveResource(ResourceManager.getInstance().getResourceProject(), false);
    		diagram = Utils.getDiagram(chain);
    		ProjectsManager.getInstance().getActiveProject().getChains().add(chain);
    		IMacroState macroState = setMacroState(chain, "macroState", "100", "50");
    		IState Invoke = diagram.getInvokeState();
    		IState Terminate = diagram.getTerminateState();
    		// ITransition setlink( IDiagram diagram, IState From, IState To, String
    		// name, Object objet, Frequency frequency)
    		ITransition Link = setlink( diagram, Invoke, macroState, "myLink", "subject", Frequency.NORMAL);
    		Link = setlink( diagram, macroState, (IState) Terminate, "myLinkfinal", "subject", Frequency.NORMAL);
        }
    	public boolean performFinish()
    	{
    		return( true);
    	}
    }

    en outre il y a trois problèmes à l'exécution

    1° la méthode performfinish') ne marche pas le wizard reste ouvert.

    2° la méthode addPages() ne passe pas a l"exécution le soft ne démarre pas quand on met les différentes pages dans la méthode. J'ai donc fait un méthode addAvDerPage qui marche mais ne fait rien le résultat de la méthode addPages reste affiché: voir pb n°1

    3° la méthode getNextPage sort en exception

    java.lang.ClassCastException: java.util.ArrayList cannot be cast to org.eclipse.jface.wizard.IWizardPage
    	at com.all4tec.matelo.linguistique.wizards.LinguistiqueImportWizard.getNextPage(LinguistiqueImportWizard.java:123)
    	at com.all4tec.matelo.linguistique.wizards.LinguistiqueImportWizard.RecupereNomDesFichiers(LinguistiqueImportWizard.java:90)
    	at com.all4tec.matelo.linguistique.wizards.LinguistiqueImportWizard$1.run(LinguistiqueImportWizard.java:154)
    	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

    J'ai donc modifié cette méthode comme suit pour tourner l'exception;

    avantDernierePage =  super.getNextPage((IWizardPage) avantDernierePage);


    Jean Noël Martin


    mardi 2 juin 2015 03:02