在Eclipse插件中获取NewProjectCreationPage中的用户数据

时间:2015-05-12 07:52:27

标签: eclipse eclipse-pde

我成功制作插件。但是现在我需要在项目创建页面上添加一些文本框来获取用户信息。此外,我需要使用此信息添加到项目目录中生成的自动生成的.php文件中。

我想知道如何覆盖import java.net.URI; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExecutableExtension; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.Wizard; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.ui.INewWizard; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.dialogs.WizardNewProjectCreationPage; import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard; import rudraxplugin.pages.MyPageOne; import rudraxplugin.projects.RudraxSupport; public class CustomProjectNewWizard extends Wizard implements INewWizard, IExecutableExtension { private WizardNewProjectCreationPage _pageOne; protected MyPageOne one; private IConfigurationElement _configurationElement; public CustomProjectNewWizard() { // TODO Auto-generated constructor stub setWindowTitle("RudraX"); } @Override public void init(IWorkbench workbench, IStructuredSelection selection) { // TODO Auto-generated method stub } @Override public void addPages() { super.addPages(); _pageOne = new WizardNewProjectCreationPage("From Scratch Project Wizard"); _pageOne.setTitle("From Scratch Project"); _pageOne.setDescription("Create something from scratch."); addPage(one); addPage(_pageOne); } @Override public boolean performFinish() { String name = _pageOne.getProjectName(); URI location = null; if (!_pageOne.useDefaults()) { location = _pageOne.getLocationURI(); System.err.println("location: " + location.toString()); //$NON-NLS-1$ } // else location == null RudraxSupport.createProject(name, location); // Add this BasicNewProjectResourceWizard.updatePerspective(_configurationElement); return true; } @Override public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException { _configurationElement = config; // TODO Auto-generated method stub } } 以向已经给定的布局添加更多文本框。我对插件开发很新。这是我的自定义向导的代码。

$(document).ready(function() {
  $('#calendar').fullCalendar({
    header: {
      left: 'prev,next today',
      center: 'title',
      right: 'month,basicWeek,basicDay'
    },
    googleCalendarApiKey: 'myApiKey',
    eventSources: [
      {
        url: "https://www.google.com/calendar/feeds/mycalendarid/public/basic",
        dataType : 'jsonp'
      }
    ],
    eventClick: function(event) {
      // opens events in a popup window
      window.open(event.url, 'gcalevent', 'width=700,height=600');
      return false;
    }
  });

要求提供任何其他代码。任何帮助表示赞赏。谢谢。

1 个答案:

答案 0 :(得分:1)

而不是使用WizardNewProjectCreationPage直接创建扩展WizardNewProjectCreationPage的新类并覆盖createControl方法来创建新控件:

class MyNewProjectCreationPage extends WizardNewProjectCreationPage
{
   @Override
   public void createControl(Composite parent)
   {
     super.createControl(parent);

     Composite body = (Composite)getControl();

     ... create new controls here   
   }
}