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.core.controls.CCombo3; 14765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.wb.internal.core.model.property.Property; 15765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 16765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye/** 17765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * The {@link PropertyEditor} for selecting single string from given set. 18765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 19765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @author sablin_aa 20765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @coverage core.model.property.editor 21765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 22765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyepublic final class StringListPropertyEditor extends AbstractListPropertyEditor { 23765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye private boolean m_ignoreCase; 24765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye private String[] m_strings; 25765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 26765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 27765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 28765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Combo 29765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 30765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 31765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 32765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye protected void toPropertyEx_simpleProperty(Property property, CCombo3 combo, int index) 33765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye throws Exception { 34765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye property.setValue(m_strings[index]); 35765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 36765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 37765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 38765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 39765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Access to list items 40765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 41765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 42765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 43765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye protected int getCount() { 44765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return m_strings.length; 45765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 46765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 47765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 48765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye protected int getValueIndex(Object value) { 49765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (value instanceof String) { 50765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye String string = (String) value; 51765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye for (int i = 0; i < getCount(); i++) { 52765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (m_ignoreCase) { 53765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (string.equalsIgnoreCase(m_strings[i])) { 54765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return i; 55765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 56765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } else { 57765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (string.equals(m_strings[i])) { 58765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return i; 59765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 60765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 61765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 62765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 63765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return -1; 64765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 65765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 66765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 67765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye protected String getTitle(int index) { 68765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return m_strings[index]; 69765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 70765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 71765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 72765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye protected String getExpression(int index) throws Exception { 73765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //return StringConverter.INSTANCE.toJavaSource(null, m_strings[index]); 74765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // HACK!! 75765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye System.out.println("HACK!"); 76765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return m_strings[index]; 77765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 78765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// 79765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// //////////////////////////////////////////////////////////////////////////// 80765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// // 81765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// // IConfigurablePropertyObject 82765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// // 83765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// //////////////////////////////////////////////////////////////////////////// 84765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// public void configure(EditorState state, Map<String, Object> parameters) throws Exception { 85765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// m_strings = getParameterAsArray(parameters, "strings"); 86765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// m_ignoreCase = "true".equals(parameters.get("ignoreCase")); 87765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// } 88765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// 89765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// /** 90765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// * Configures this editor externally. 91765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// */ 92765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// public void configure(String[] strings) { 93765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// m_strings = strings; 94765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye// } 95765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye} 96