/**
   * @see
   *     org.eclipse.nebula.widgets.nattable.edit.gui.AbstractDialogCellEditor#createDialogInstance()
   * @return
   */
  @Override
  public Object createDialogInstance() {
    int columnIndex = this.layerCell.getColumnIndex();
    int rowIndex = this.layerCell.getRowIndex();
    Object row = this.manager.getRowElement(rowIndex);
    Object column = this.manager.getColumnElement(columnIndex);
    row = AxisUtils.getRepresentedElement(row);
    column = AxisUtils.getRepresentedElement(column);
    Element editedElement = null;
    Object feature = null;
    if (row instanceof EObject && column == this.axisElement) {
      editedElement = (Element) row;
      feature = column;
    } else {
      editedElement = (Element) column;
      feature = row;
    }

    EStructuralFeature realFeature = null;
    EObject realEditedObject = null;
    Stereotype stereotype = null;
    List<Stereotype> stereotypesWithEditedFeatureAppliedOnElement = null;
    if (feature instanceof EStructuralFeature) {
      realFeature = (EStructuralFeature) feature;
      realEditedObject = editedElement;
    } else {
      final String id = AxisUtils.getPropertyId(this.axisElement);
      stereotypesWithEditedFeatureAppliedOnElement =
          UMLTableUtils.getAppliedSteretoypesWithThisProperty(editedElement, id);
      stereotype = stereotypesWithEditedFeatureAppliedOnElement.get(0);
      realEditedObject =
          editedElement.getStereotypeApplication(
              stereotypesWithEditedFeatureAppliedOnElement.get(0));
      Property prop = UMLTableUtils.getRealStereotypeProperty(editedElement, id);
      realFeature = realEditedObject.eClass().getEStructuralFeature(prop.getName());
    }
    if (stereotypesWithEditedFeatureAppliedOnElement != null
        && stereotypesWithEditedFeatureAppliedOnElement.size() > 1) {
      // FIXME : not yet managed
    } else {
      this.dialog =
          createDialog(
              realEditedObject,
              realFeature,
              stereotype,
              editedElement.eResource().getResourceSet());
    }
    return this.dialog;
  }
 /** Constructor. */
 public EEnumComboBoxDataProvider(Object axisElement) {
   Object object = AxisUtils.getRepresentedElement(axisElement);
   Assert.isTrue(object instanceof EStructuralFeature);
   EStructuralFeature feature = (EStructuralFeature) object;
   EClassifier type = feature.getEType();
   Assert.isTrue(type instanceof EEnum);
   this.eenum = (EEnum) type;
 }
 /**
  * @see
  *     org.eclipse.papyrus.infra.nattable.handler.AbstractDisconnectSlaveHandler#getAxisProviderToEdit()
  * @return
  */
 protected AbstractAxisProvider getAxisProviderToEdit() {
   return AxisUtils.getAxisProviderUsedForColumns(getCurrentNattableModelManager());
 }