Package org.activiti.designer.property.extension.util

Source Code of org.activiti.designer.property.extension.util.ExtensionPropertyUtil

/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.activiti.designer.property.extension.util;

import org.activiti.designer.integration.servicetask.PropertyType;
import org.activiti.designer.property.custom.PeriodPropertyElement;
import org.apache.commons.lang.StringUtils;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Spinner;

/**
* Provides utilities for extension property editing.
*
* @author Tiese Barrell
* @since 0.6.1
* @version 1
*/
public final class ExtensionPropertyUtil {

  private ExtensionPropertyUtil() {

  }

  /**
   * Inspects the provided parent component and extracts the value for the
   * {@link PropertyType#PERIOD} enclosed.
   *
   * @param parent
   *          the parent component
   */
  public static final String getPeriodValueFromParent(final Composite parent) {

    String[] values = new String[PeriodPropertyElement.values().length];

    for (final Control control : parent.getChildren()) {
      if (control instanceof Spinner) {
        final String periodKey = (String) control.getData("PERIOD_KEY");
        final PeriodPropertyElement element = PeriodPropertyElement.byShortFormat(periodKey);

        if (element != null) {
          final int elementValue = ((Spinner) control).getSelection();
          final String elementStringValue = elementValue + element.getShortFormat();
          values[element.getOrder()] = elementStringValue;
        }
      }
    }

    final StringBuilder builder = new StringBuilder();
    for (int i = 0; i < values.length; i++) {
      builder.append(values[i]);
      if (i != values.length - 1) {
        builder.append(" ");
      }
    }
    String value = builder.toString();
    return value;
  }

  /**
   * Inspects the provided value and extracts the value for the
   * {@link PeriodPropertyElement} provided.
   *
   * @param parent
   *          the parent component
   */
  public static final int getPeriodPropertyElementFromValue(final String value, final PeriodPropertyElement propertyElement) {

    int result = 0;
    final String[] elementValues = value.split(" ");

    if (propertyElement != null) {
      final String stripped = StringUtils.substringBeforeLast(elementValues[propertyElement.getOrder()], propertyElement.getShortFormat());
      result = Integer.parseInt(stripped);
    }
    return result;
  }
}
TOP

Related Classes of org.activiti.designer.property.extension.util.ExtensionPropertyUtil

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.