/**
*
*/
package org.feature.multi.perspective.model.editor.editors.listeners;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Combo;
import org.feature.multi.perspective.model.viewmodel.CoreGroup;
import org.feature.multi.perspective.model.viewmodel.ViewPoint;
import org.feature.multi.perspective.model.editor.editors.ViewmodelMultiPageEditor;
import org.feature.multi.perspective.model.editor.util.Matrix;
/**
* Listener for choosing a {@link ViewPoint} for the {@link ViewPoint} view.
* @author Tim Winkelmann
*
*/
public class ViewPointComboSelectionListener implements SelectionListener {
private ViewmodelMultiPageEditor multiPageEditor;
public ViewPointComboSelectionListener(ViewmodelMultiPageEditor multiPageEditor) {
this.multiPageEditor = multiPageEditor;
}
/* (non-Javadoc)
* @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
@Override
public void widgetSelected(SelectionEvent e) {
if (e.getSource() instanceof Combo) {
Combo viewPointCombo = (Combo) e.getSource();
String viewPointName = viewPointCombo.getItems()[viewPointCombo.getSelectionIndex()];
multiPageEditor.setSelectedViewPoint(viewPointName);
//create matrix
new Matrix(getCoreGroup(multiPageEditor.getEditingDomain()));
}
}
/**
* get the default group from the editing domain
* @param editingDomain the editing domain
* @return the defaultGroup
*/
private CoreGroup getCoreGroup(EditingDomain editingDomain){
TreeIterator<Notifier> allContents = editingDomain.getResourceSet().getAllContents();
CoreGroup coreGroup = null;
while (allContents.hasNext()) {
Notifier notifier = allContents.next();
if (notifier instanceof CoreGroup) {
coreGroup = (CoreGroup) notifier;
break;
}
}
return coreGroup;
}
/* (non-Javadoc)
* @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
*/
@Override
public void widgetDefaultSelected(SelectionEvent e) {
System.out.println("wDS");
}
}