static {
   TextPropertyDescriptor t1 = new TextPropertyDescriptor(ID_X, "X");
   t1.setValidator(NumberCellEditorValidator.INSTANCE());
   TextPropertyDescriptor t2 = new TextPropertyDescriptor(ID_Y, "Y");
   t2.setValidator(NumberCellEditorValidator.INSTANCE());
   t2.setLabelProvider(TextPropertyLabelProvider.INSTANCE());
   t1.setLabelProvider(TextPropertyLabelProvider.INSTANCE());
   descriptor = new IPropertyDescriptor[] {t1, t2};
 }
  @Override
  public IPropertyDescriptor[] getPropertyDescriptors() {
    List<IPropertyDescriptor> props = new ArrayList<IPropertyDescriptor>();
    TextPropertyDescriptor nameDescr = new TextPropertyDescriptor(PROPERTY_NAME, PROPERTY_NAME);
    nameDescr.setValidator(getDiagram().getUniqueNameValidator(this));
    props.add(nameDescr);
    props.add(new TextPropertyDescriptor(TITLE_PROP, TITLE_PROP));
    props.add(new TextPropertyDescriptor(TITLE_ID_PROP, TITLE_ID_PROP));
    props.add(new TextPropertyDescriptor(OK_PROP, OK_PROP));
    if (!getPlatform().isAndroid()) {
      props.add(new TextPropertyDescriptor(OK_ID_PROP, OK_ID_PROP));
    }
    props.add(new TextPropertyDescriptor(MESSAGE_PROP, MESSAGE_PROP));
    props.add(new TextPropertyDescriptor(MESSAGE_ID_PROP, MESSAGE_ID_PROP));

    NumberPropertyDescriptor npd =
        new NumberPropertyDescriptor(
            PROPERTY_CHILDREN, "optionsCount", NumberCellEditor.INTEGER, true);
    // set Maximum number of buttons to 3 under Android platform
    int maxValue = Platform.Android.equals(getPlatform()) ? 3 : 30;
    npd.setValidator(new MinmaxValidator(1, maxValue));
    props.add(npd);

    npd = new NumberPropertyDescriptor(CANCEL_PROP, CANCEL_PROP, NumberCellEditor.INTEGER, true);
    npd.setValidator(new MinmaxValidator(0, MinmaxValidator.MIN_ONLY));
    props.add(npd);

    return props.toArray(new IPropertyDescriptor[props.size()]);
  }