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 <code>float</code>. 22765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 23765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @author scheglov_ke 24765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @coverage core.model.property.editor 25765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 26765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyepublic class FloatPropertyEditor extends AbstractTextPropertyEditor { 27765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 28765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 29765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Instance 30765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 31765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 32765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static final PropertyEditor INSTANCE = new FloatPropertyEditor(); 33765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 34765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye protected FloatPropertyEditor() { 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 instanceof Float) { 46765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return value.toString(); 47765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 48765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return null; 49765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 50765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 51765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 52765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 53765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Editing 54765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 55765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 56765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 57765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye protected String getEditorText(Property property) throws Exception { 58765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return getText(property); 59765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 60765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 61765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 62765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye protected boolean setEditorText(Property property, String text) throws Exception { 63765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye text = text.trim(); 64765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // check for delete 65765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (text.length() == 0) { 66765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye property.setValue(Property.UNKNOWN_VALUE); 67765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 68765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // prepare value 69765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye Float value; 70765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye try { 71765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye value = Float.valueOf(text); 72765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } catch (Throwable e) { 73765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye UiUtils.openWarning( 74765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye DesignerPlugin.getShell(), 75765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye property.getTitle(), 76765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye MessageFormat.format(ModelMessages.FloatPropertyEditor_notValidFloat, text)); 77765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return false; 78765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 79765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // modify property 80765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye property.setValue(value); 81765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return true; 82765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 83765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye} 84