1765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye/******************************************************************************* 2765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Copyright (c) 2011 Google, Inc. 3765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * All rights reserved. This program and the accompanying materials 4765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * are made available under the terms of the Eclipse Public License v1.0 5765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * which accompanies this distribution, and is available at 6765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * http://www.eclipse.org/legal/epl-v10.html 7765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 8765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Contributors: 9765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Google, Inc. - initial API and implementation 10765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye *******************************************************************************/ 11765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyepackage org.eclipse.wb.internal.core.model.property.editor; 12765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 13765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.wb.internal.core.DesignerPlugin; 14765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.wb.internal.core.model.ModelMessages; 15765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.wb.internal.core.model.property.Property; 16765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.wb.internal.core.utils.ui.UiUtils; 17765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 18765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport java.text.MessageFormat; 19765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 20765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye/** 21765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * The {@link PropertyEditor} for {@link Short}. 22765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 23765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @author scheglov_ke 24765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @coverage core.model.property.editor 25765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 26765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyepublic final class ShortObjectPropertyEditor extends AbstractTextPropertyEditor { 27765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 28765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 29765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Instance 30765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 31765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 32765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static final ShortObjectPropertyEditor INSTANCE = new ShortObjectPropertyEditor(); 33765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 34765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye private ShortObjectPropertyEditor() { 35765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 36765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 37765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 38765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 39765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Presentation 40765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 41765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 42765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 43765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public String getText(Property property) throws Exception { 44765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye Object value = property.getValue(); 45765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (value == null) { 46765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return "null"; 47765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 48765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (value instanceof Short) { 49765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return value.toString(); 50765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 51765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return null; 52765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 53765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 54765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 55765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 56765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Editing 57765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 58765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 59765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 60765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye protected String getEditorText(Property property) throws Exception { 61765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return getText(property); 62765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 63765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 64765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 65765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye protected boolean setEditorText(Property property, String text) throws Exception { 66765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye text = text.trim(); 67765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // check for delete 68765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (text.length() == 0) { 69765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye property.setValue(Property.UNKNOWN_VALUE); 70765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return true; 71765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 72765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // check for "null" 73765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (text.equals("null")) { 74765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye property.setValue(null); 75765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return true; 76765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 77765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // prepare value 78765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye Short value; 79765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye try { 80765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye value = Short.valueOf(text); 81765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } catch (Throwable e) { 82765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye UiUtils.openWarning( 83765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye DesignerPlugin.getShell(), 84765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye property.getTitle(), 85765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye MessageFormat.format(ModelMessages.ShortObjectPropertyEditor_notValidShort, text)); 86765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return false; 87765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 88765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // modify property 89765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye property.setValue(value); 90765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return true; 91765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 92765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye} 93