Announcement

Collapse
No announcement yet.

Plugin ruft Operation nicht auf

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Plugin ruft Operation nicht auf

    Hallo,

    ich habe folgendes Problem und hoffe jemand kann mir helfen.

    Ich will ein Plugin implementieren mit dem ich einfach einen Ordner auswählen kann, mittels "DirectoryDialog" und der Pfad des Ordners soll zurückgegeben werden.

    Die Plugin Klasse sieht wie folgt aus:

    import java.io.IOException;

    import org.apache.solr.client.solrj.SolrServerException;
    import org.eclipse.jface.action.IAction;
    import org.eclipse.jface.viewers.ISelection;
    import org.eclipse.ui.IWorkbenchWindow;
    import org.eclipse.ui.IWorkbenchWindowActionDelegate;


    public class UploadAction implements IWorkbenchWindowActionDelegate
    {
    private IWorkbenchWindow window;

    public UploadAction() {
    }

    public void run(IAction action)
    {

    SelectDirectory test = new SelectDirectory();

    try {
    test.dirUpload(window.getShell());
    } catch (SolrServerException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    public void selectionChanged(IAction action, ISelection selection) {
    }

    public void dispose() {
    }


    public void init(IWorkbenchWindow window) {
    this.window = window;
    }
    }






    Die Klasse die mittels DirectoryDialog mir den ausgewählten Ordner zurückgibt:


    package plugin.actions;

    import java.awt.Window;
    import java.io.File;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Stack;
    import java.util.regex.Pattern;

    import org.apache.solr.client.solrj.SolrServerException;
    import org.eclipse.swt.widgets.DirectoryDialog;
    import org.eclipse.swt.widgets.Shell;

    import plugin.ASTAction;

    public class SelectDirectory {

    //Verzeichnis auswählen um Ordner zu indizieren
    public void dirUpload(Shell shell) throws SolrServerException, IOException
    {
    // final Shell shell = new Shell();

    DirectoryDialog dlg = new DirectoryDialog(shell);

    dlg.setText("Upload Data to Solr");

    dlg.setMessage("Select a directory");

    String dir = dlg.open();

    if (dir != null)
    {
    System.out.println(dir);
    // addPath(dir);
    }

    }






    meine plugin.xml

    [syntax="xml"]
    <?xml version="1.0" encoding="UTF-8"?>
    <?eclipse version="3.2"?>
    <plugin>

    <extension
    point="org.eclipse.ui.actionSets">
    <actionSet
    label="Upload Action Set"
    visible="true"
    id="plugin.actionSet">
    <menu
    label="Upload Menu"
    id="uploadMenu">
    <separator
    name="sampleGroup">
    </separator>
    </menu>
    <action
    label="Upload Data"
    icon="icons/sample.gif"
    class="plugin.actions.UploadAction"
    tooltip="Upload Data"
    menubarPath="uploadMenu/uploadGroup"
    toolbarPath="UploadGroup"
    id="plugin.actions.UploadAction">
    </action>
    </actionSet>
    </extension>

    </plugin>





    Die manifest Datei:


    Manifest-Version: 1.0
    Bundle-ManifestVersion: 2
    Bundle-Name: Uni plugin
    Bundle-SymbolicName: plugin; singleton:=true
    Bundle-Version: 1.0.0
    Bundle-Activator: plugin.Activator
    Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime
    Bundle-ActivationPolicy: lazy
    Bundle-RequiredExecutionEnvironment: JavaSE-1.6




    Wenn ich in meinem Menü "Solr Upload" auf Upload Data klicke, kommt eine Fehlermeldung "Operation konnte nicht gefunden werden"

    Ich habe herausgefunden, dass wenn ich in der Klasse, die mir das Verzeichnis zurückgibt, nach throws "SolrServerException" entferne es dann geht, jedoch brauche ich diese Exception da in meinem Beispiel die Methode nur das Verzeichnis gibt. Die Methode soll eigentlich auf einen Server, Daten im ausgewählten Verzeichnis hochladen.
    Weiß jemand woran das liegen kann, Vielleicht habe ich etwas vergessen?
    Ich hoffe mir kann jemand helfen.

    Gruß
Working...
X