blob: c6cd191ace125b164053e5474af0759761f83eb5 [file] [log] [blame]
/**
* <copyright>
* </copyright>
*
* $Id: RefactoringWizardPage.javajet,v 1.2 2012/10/16 21:03:02 tarendt Exp $
*/
package org.eclipse.emf.refactor.refactorings.uml24.pullupattribute;
import java.util.List;
import org.eclipse.emf.refactor.refactoring.runtime.ltk.ui.AbstractRefactoringWizard;
import org.eclipse.emf.refactor.refactoring.runtime.ui.IInputPageButtonCreator;
import org.eclipse.emf.refactor.refactoring.runtime.ui.InputPageButtonLoader;
import org.eclipse.ltk.ui.refactoring.UserInputWizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Property;
/**
* Class for setting model refactoring specific parameters
* by the user.
* @generated
*/
public class RefactoringWizardPage extends
UserInputWizardPage implements Listener {
/**
* Controller of the EMF model refactoring.
* @generated
*/
private final RefactoringController controller;
/**
* Label for each parameter.
* @generated
*/
private Label classNameLabel;
private List<Class> superclasses;
private Combo classNameWidget;
/**
* Default constructor using a name and the controller of the
* EMF model refactoring.
* @param name Name of the WizardPage.
* @param controller Controller of the EMF model refactoring.
* @generated
*/
public RefactoringWizardPage
(String name, RefactoringController controller) {
super(name);
this.controller = controller;
this.setUpMembers();
}
private void setUpMembers() {
RefactoringDataManagement dataManagement = (RefactoringDataManagement) this.controller.getDataManagementObject();
Property attribute = (Property) dataManagement.getInPortByName(dataManagement.SELECTEDEOBJECT).getValue();
Class owningClass = attribute.getClass_();
superclasses = owningClass.getSuperClasses();
}
/**
* @see org.eclipse.swt.widgets.Listener#
* handleEvent(org.eclipse.swt.widgets.Event)
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public void handleEvent(Event event) {
getWizard().getContainer().updateButtons();
if (classNameWidget != null) {
int index = classNameWidget.getSelectionIndex();
String className = superclasses.get(index).getName();
if (!className.isEmpty()){
((RefactoringDataManagement)
this.controller.getDataManagementObject()).
getInPortByName("className").
setValue(className);
} else {
((RefactoringDataManagement)
this.controller.getDataManagementObject()).
getInPortByName("className").
setValue("unspecified");
}
}
}
/**
* @see org.eclipse.jface.dialogs.IDialogPage#
* createControl(org.eclipse.swt.widgets.Composite)
* @generated
*/
@Override
public void createControl(Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
GridLayout gl = new GridLayout();
gl.numColumns = 2;
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
composite.setLayout(gl);
classNameLabel = new Label(composite, SWT.NONE);
classNameLabel.setText("Name of the superclass to be pulled up to: ");
classNameLabel.setEnabled(true);
classNameWidget = new Combo(composite, SWT.DROP_DOWN | SWT.BORDER);
classNameWidget.setToolTipText
("value of variable 'className'");
classNameWidget.setEnabled(true);
classNameWidget.setLayoutData(gd);
classNameWidget.addListener(SWT.Modify, this);
for (int i = 0; i < superclasses.size(); i++) {
classNameWidget.add(superclasses.get(i).getQualifiedName());
}
List<IInputPageButtonCreator> buttonCreators = InputPageButtonLoader.iNSTANCE.getInputPageButtonCreatorClasses();
for(IInputPageButtonCreator creator : buttonCreators){
creator.createButton(composite, controller, (AbstractRefactoringWizard)this.getWizard());
}
setControl(composite);
}
}