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.string; 12765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 13765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.wb.internal.core.model.property.Property; 14765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.wb.internal.core.model.property.editor.AbstractTextPropertyEditor; 15765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.wb.internal.core.model.property.editor.PropertyEditor; 16765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.wb.internal.core.model.property.editor.presentation.ButtonPropertyEditorPresentation; 17765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.wb.internal.core.model.property.editor.presentation.PropertyEditorPresentation; 18765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.wb.internal.core.model.property.table.PropertyTable; 19765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 20765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.jface.window.Window; 21765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 22765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye/** 23765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * The {@link PropertyEditor} for {@link String}. 24765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 25765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @author scheglov_ke 26765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @coverage core.model.property.editor 27765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 28765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyepublic class StringPropertyEditor extends AbstractTextPropertyEditor { 29765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 30765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 31765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Instance 32765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 33765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 34765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static final PropertyEditor INSTANCE = new StringPropertyEditor(); 35765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 36765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye private StringPropertyEditor() { 37765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 38765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 39765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 40765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 41765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Presentation 42765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 43765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 44765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye private final PropertyEditorPresentation m_presentation = new ButtonPropertyEditorPresentation() { 45765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 46765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye protected void onClick(PropertyTable propertyTable, Property property) throws Exception { 47765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye openDialog(propertyTable, property); 48765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 49765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye }; 50765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 51765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 52765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public PropertyEditorPresentation getPresentation() { 53765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return m_presentation; 54765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 55765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 56765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 57765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 58765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Presentation 59765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 60765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 61765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 62765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public String getText(Property property) throws Exception { 63765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye Object value = property.getValue(); 64765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (value instanceof String) { 65765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return (String) value; 66765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 67765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return null; 68765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 69765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 70765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 71765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 72765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Editing 73765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 74765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 75765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 76765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye protected String getEditorText(Property property) throws Exception { 77765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return getText(property); 78765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 79765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 80765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 81765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye protected boolean setEditorText(Property property, String text) throws Exception { 82765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye property.setValue(text); 83765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return true; 84765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 85765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 86765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 87765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 88765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Editing in dialog 89765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 90765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 91765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 92765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Opens editing dialog. 93765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 94765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye private void openDialog(PropertyTable propertyTable, Property property) throws Exception { 95765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye StringPropertyDialog dialog = new StringPropertyDialog(propertyTable.getShell(), property); 96765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (dialog.open() == Window.OK) { 97765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 98765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 99765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye} 100