我查看了几个地方,但似乎无法理解为什么我的代码无效。我所遵循的每一个教程都是一样的,对我来说,看起来我正在做我需要做的事情......
我也没有收到任何警告或错误,所以人们会猜测它有效。
我正在尝试做什么:当您单击“新建”时在Eclipse中添加向导。据我所知(我是新手),我需要创建一个新的插件项目,我需要在plugin.xml文件中定义一些扩展。我还需要添加所有依赖项。
这是我的plugin.xml中的内容:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension point="org.eclipse.ui.actionSets">
</extension>
<extension point="org.eclipse.ui.newWizards">
<category
id="test.myNewWizard"
name="Custom false new wizard">
</category>
<wizard
category="test.myNewWizard"
class="test.NewAppWizard"
icon="icons/logo_16px.png"
id="test.NewAppWizard"
name="New Testing Test">
</wizard>
</extension>
</plugin>
如上所述:我没有警告或错误(控制台甚至没有打印任何东西),这意味着应该找到所有类和图标。它们也存在于同一个项目中。
我的MANIFEST.MF
:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: NewAppwizard
Bundle-SymbolicName: test.myNewWizard;singleton:=true
Bundle-Version: 1.0.0.qualifier
Require-Bundle: org.eclipse.ui,
org.eclipse.core.resources,
org.eclipse.ui.ide,
org.eclipse.core.runtime,
org.eclipse.core.databinding,
org.eclipse.core.databinding.beans,
org.eclipse.core.databinding.observable,
org.eclipse.core.databinding.property,
org.eclipse.jface.databinding,
com.ibm.icu
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
任何有任何线索的人
我还尝试使用以下设置创建一个新的示例项目“File&gt; New&gt; Plug-in Project”:
“下一步”,“使用其中一个模板创建插件:”并使用模板“使用多页编辑器插件”。那个也使用了一个Sample New Wizard,但是当我在创建它之后立即运行它时,即使这个也没有显示向导选项。
最后说明:我通过打开“plugin.xml”文件,“概述”,“启动Eclipse应用程序”来运行应用程序。
谢谢!
编辑:按要求,这里是test.NewAppWizard
班级的内容:
package test;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
public class NewAppWizard extends Wizard implements INewWizard {
private CreateAppPage firstPage;
public NewAppWizard() {
super();
setNeedsProgressMonitor(true);
setWindowTitle("Test");
}
@Override
public void addPages() {
firstPage = new CreateAppPage();
addPage(firstPage);
}
@Override
public void init(IWorkbench workbench, IStructuredSelection selection) {}
@Override
public boolean performFinish() {
return false;
}
@Override
public boolean canFinish() {
return false;
}
}
要完成,这里也是我的CreateAppPage
课程:
package test;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
public class CreateAppPage extends WizardPage {
private Text testName;
private Composite container;
private KeyListener pageComplete;
public CreateAppPage() {
super("Create a new application");
setTitle("Create a new application");
pageComplete = new PageCompleteKeyListener();
}
@Override
public void createControl(Composite parent) {
container = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
container.setLayout(layout);
layout.numColumns = 2;
Label lblTestName = new Label(container, SWT.NONE);
lblTestName.setText("Application name:");
testName = new Text(container, SWT.BORDER | SWT.SINGLE | SWT.FILL);
testName.addKeyListener(pageComplete);
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
testName.setLayoutData(gd);
setControl(container);
setPageComplete(false);
}
public String getName() {
return testName.getText();
}
private class PageCompleteKeyListener implements KeyListener {
public void keyPressed(KeyEvent e) {}
public void keyReleased(KeyEvent e) {
if (testName.getText().isEmpty()) {
setErrorMessage("Name cannot be empty");
setPageComplete(false);
} else {
setErrorMessage(null);
setPageComplete(true);
}
}
}
}
答案 0 :(得分:1)
问题
当Eclipse运行时,您的插件似乎未激活。 因此,您的向导不会显示在列表中。
解决方案