Skip to content

Content of file NewXMIFileWizardPage.java

/*******************************************************************************
 * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 * Eugen Neufeld - initial API and implementation
 ******************************************************************************/
package org.eclipse.emf.ecp.workspace.internal.ui;

import java.lang.reflect.Field;

import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.window.Window;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
import org.eclipse.ui.internal.ide.misc.ContainerSelectionGroup;
import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard; /** * The Class NewXMIFileWizardPage. * * @author Tobias Verhoeven */ public class NewXMIFileWizardPage extends WizardNewFileCreationPage { private TreeViewer memTreeViewer; /** * Instantiates a new new XMI file wizard page. */ public NewXMIFileWizardPage() { super(Messages.NewXMIFileWizardPage_CreateNewXMIFile, new StructuredSelection(ResourcesPlugin.getWorkspace().getRoot())); setTitle(Messages.NewXMIFileWizardPage_CreateNewXMIFile); setDescription(Messages.NewXMIFileWizardPage_SelectRootContainer); setFileName("*.xmi"); //$NON-NLS-1$ } /* * (non-Javadoc) * @see org.eclipse.ui.dialogs.WizardNewFileCreationPage#createControl(org.eclipse.swt.widgets.Composite) */ @Override public void createControl(Composite parent) { super.createControl(parent); retrieveTreeViewer(parent); } /** * @param parent */ private void retrieveTreeViewer(Composite parent) { // ... Composite composite = (Composite) parent.getChildren()[0]; composite = (Composite) composite.getChildren()[0]; final ContainerSelectionGroup csg = (ContainerSelectionGroup) composite.getChildren()[0]; try { final Field field = ContainerSelectionGroup.class.getDeclaredField("treeViewer"); //$NON-NLS-1$ field.setAccessible(true); memTreeViewer = (TreeViewer) field.get(csg); } catch (final IllegalArgumentException ex) { } catch (final IllegalAccessException ex) { } catch (final NoSuchFieldException ex) { } catch (final SecurityException ex) { } } /* * (non-Javadoc) * @see org.eclipse.ui.dialogs.WizardNewFileCreationPage#createAdvancedControls(org.eclipse.swt.widgets.Composite) */ @Override protected void createAdvancedControls(final Composite parent) { final Button btnCreateNewProject = new Button(parent, SWT.NONE); btnCreateNewProject.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); btnCreateNewProject.setText(Messages.NewXMIFileWizardPage_CreateNewProject); btnCreateNewProject.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { final BasicNewProjectResourceWizard bd = new BasicNewProjectResourceWizard(); bd.init(PlatformUI.getWorkbench(), null); final WizardDialog wizardDialog = new WizardDialog(parent.getShell(), bd); if (wizardDialog.open() == Window.OK) { } else { } if (memTreeViewer != null) { memTreeViewer.refresh(); } } }); super.createAdvancedControls(parent); } }