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.core.controls.CCombo3; 14 import org.eclipse.wb.internal.core.model.property.Property; 15 16 /** 17 * The {@link PropertyEditor} for selecting single string from given set. 18 * 19 * @author sablin_aa 20 * @coverage core.model.property.editor 21 */ 22 public final class StringListPropertyEditor extends AbstractListPropertyEditor { 23 private boolean m_ignoreCase; 24 private String[] m_strings; 25 26 //////////////////////////////////////////////////////////////////////////// 27 // 28 // Combo 29 // 30 //////////////////////////////////////////////////////////////////////////// 31 @Override toPropertyEx_simpleProperty(Property property, CCombo3 combo, int index)32 protected void toPropertyEx_simpleProperty(Property property, CCombo3 combo, int index) 33 throws Exception { 34 property.setValue(m_strings[index]); 35 } 36 37 //////////////////////////////////////////////////////////////////////////// 38 // 39 // Access to list items 40 // 41 //////////////////////////////////////////////////////////////////////////// 42 @Override getCount()43 protected int getCount() { 44 return m_strings.length; 45 } 46 47 @Override getValueIndex(Object value)48 protected int getValueIndex(Object value) { 49 if (value instanceof String) { 50 String string = (String) value; 51 for (int i = 0; i < getCount(); i++) { 52 if (m_ignoreCase) { 53 if (string.equalsIgnoreCase(m_strings[i])) { 54 return i; 55 } 56 } else { 57 if (string.equals(m_strings[i])) { 58 return i; 59 } 60 } 61 } 62 } 63 return -1; 64 } 65 66 @Override getTitle(int index)67 protected String getTitle(int index) { 68 return m_strings[index]; 69 } 70 71 @Override getExpression(int index)72 protected String getExpression(int index) throws Exception { 73 //return StringConverter.INSTANCE.toJavaSource(null, m_strings[index]); 74 // HACK!! 75 System.out.println("HACK!"); 76 return m_strings[index]; 77 } 78 // 79 // //////////////////////////////////////////////////////////////////////////// 80 // // 81 // // IConfigurablePropertyObject 82 // // 83 // //////////////////////////////////////////////////////////////////////////// 84 // public void configure(EditorState state, Map<String, Object> parameters) throws Exception { 85 // m_strings = getParameterAsArray(parameters, "strings"); 86 // m_ignoreCase = "true".equals(parameters.get("ignoreCase")); 87 // } 88 // 89 // /** 90 // * Configures this editor externally. 91 // */ 92 // public void configure(String[] strings) { 93 // m_strings = strings; 94 // } 95 } 96