blob: d671d8b2fa5b8b12d751701f8dd08ac21374a63e [file] [log] [blame]
/*****************************************************************************
* Copyright (c) 2017 CEA LIST.
*
* 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:
* Ansgar Radermacher (CEA LIST) ansgar.radermacher@cea.fr - Initial API and implementation
*
*****************************************************************************/
package org.eclipse.papyrus.robotics.properties.widgets;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.papyrus.infra.properties.ui.modelelement.ModelElement;
import org.eclipse.papyrus.robotics.xtext.util.TransactionalXtextEditor;
import org.eclipse.papyrus.uml.properties.xtext.widget.property.AbstractXtextPropertyEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.widgets.Composite;
/**
* A Property editor for DAtaTypes
*
* @see AbstractXtextPropertyEditor
*/
public class EnumEditor extends TransactionalXtextEditor {
/**
* Constructor.
*
* @param parent
* The composite in which the widget is created
* @param style
* The style of the editor
*/
public EnumEditor(Composite parent, int style) {
super("Enum editor", parent, style); //$NON-NLS-1$
// find size of owning scrolled composite and set height accordingly
while (parent != null) {
if (parent instanceof ScrolledComposite) {
int height = parent.getBounds().height - 4; // remove 4 pixels (for border, etc.)
GridDataFactory.fillDefaults().grab(true, true).hint(SWT.DEFAULT, height).applyTo(xtextEditor.getTextControl());
break;
}
parent = parent.getParent();
}
}
@SuppressWarnings("nls")
@Override
protected void registerChangeListeners(ModelElement element) {
registerObservable(element, "name");
registerObservable(element, "ownedAttribute");
}
}