Home | History | Annotate | Download | only in editor
      1 /*******************************************************************************
      2  * Copyright (c) 2011 Google, Inc.
      3  * All rights reserved. This program and the accompanying materials
      4  * are made available under the terms of the Eclipse Public License v1.0
      5  * which accompanies this distribution, and is available at
      6  * http://www.eclipse.org/legal/epl-v10.html
      7  *
      8  * Contributors:
      9  *    Google, Inc. - initial API and implementation
     10  *******************************************************************************/
     11 package org.eclipse.wb.internal.core.model.property.editor;
     12 
     13 import org.eclipse.wb.internal.core.DesignerPlugin;
     14 import org.eclipse.wb.internal.core.model.ModelMessages;
     15 import org.eclipse.wb.internal.core.model.property.Property;
     16 import org.eclipse.wb.internal.core.utils.ui.UiUtils;
     17 
     18 import java.text.MessageFormat;
     19 
     20 /**
     21  * The {@link PropertyEditor} for <code>short</code>.
     22  *
     23  * @author scheglov_ke
     24  * @coverage core.model.property.editor
     25  */
     26 public class ShortPropertyEditor extends AbstractTextPropertyEditor {
     27   ////////////////////////////////////////////////////////////////////////////
     28   //
     29   // Instance
     30   //
     31   ////////////////////////////////////////////////////////////////////////////
     32   public static final PropertyEditor INSTANCE = new ShortPropertyEditor();
     33 
     34   private ShortPropertyEditor() {
     35   }
     36 
     37   ////////////////////////////////////////////////////////////////////////////
     38   //
     39   // Presentation
     40   //
     41   ////////////////////////////////////////////////////////////////////////////
     42   @Override
     43   public String getText(Property property) throws Exception {
     44     Object value = property.getValue();
     45     if (value instanceof Short) {
     46       return value.toString();
     47     }
     48     return null;
     49   }
     50 
     51   ////////////////////////////////////////////////////////////////////////////
     52   //
     53   // Editing
     54   //
     55   ////////////////////////////////////////////////////////////////////////////
     56   @Override
     57   protected String getEditorText(Property property) throws Exception {
     58     return getText(property);
     59   }
     60 
     61   @Override
     62   protected boolean setEditorText(Property property, String text) throws Exception {
     63     text = text.trim();
     64     // check for delete
     65     if (text.length() == 0) {
     66       property.setValue(Property.UNKNOWN_VALUE);
     67     }
     68     // prepare value
     69     Short value;
     70     try {
     71       value = Short.valueOf(text);
     72     } catch (Throwable e) {
     73       UiUtils.openWarning(
     74           DesignerPlugin.getShell(),
     75           property.getTitle(),
     76           MessageFormat.format(ModelMessages.ShortPropertyEditor_notValidShort, text));
     77       return false;
     78     }
     79     // modify property
     80     property.setValue(value);
     81     return true;
     82   }
     83 }