1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 package org.openoffice.test.vcl.widgets; 25 26 import org.openoffice.test.vcl.client.Constant; 27 28 /** 29 * Proxy used to access Vcl Combo Box 30 * 31 */ 32 public class VclComboBox extends VclControl { 33 VclComboBox(VclApp app, String id)34 public VclComboBox(VclApp app, String id) { 35 super(app, id); 36 } 37 38 /** 39 * Get the item count 40 */ getItemCount()41 public int getItemCount() { 42 return ((Long) invoke(Constant.M_GetItemCount)).intValue(); 43 } 44 45 /** 46 * Get the text of the index-th item. 47 * @index The index starts from 0. 48 */ getItemText(int index)49 public String getItemText(int index) { 50 return (String) invoke(Constant.M_GetItemText, new Object[] {index + 1}); 51 } 52 53 /** 54 * Get the index of the selected item. 55 * @index The index starts from 0. 56 */ getSelIndex()57 public int getSelIndex() { 58 int index = ((Long) invoke(Constant.M_GetSelIndex)).intValue(); 59 return index - 1; 60 } 61 62 /** 63 * Get the text of the selected item. 64 */ getSelText()65 public String getSelText() { 66 return (String) invoke(Constant.M_GetSelText); 67 } 68 69 /** 70 * Get the text in the combo box 71 */ getText()72 public String getText() { 73 // Fix: Use M_Caption to get the text. M_GetText does not work 74 return (invoke(Constant.M_Caption)).toString(); 75 } 76 77 /** 78 * Get the text of all items 79 */ getItemsText()80 public String[] getItemsText() { 81 int count = getItemCount(); 82 String[] res = new String[count]; 83 for (int i = 0; i < count; i++) { 84 res[i] = getItemText(i); 85 } 86 return res; 87 } 88 89 /** 90 * Select the index-th item. 91 * @index The index starts from 0. 92 */ select(int index)93 public void select(int index) { 94 invoke(Constant.M_Select, new Object[] {index + 1}); 95 } 96 97 /** 98 * Select the item with the given text 99 */ select(String text)100 public void select(String text) { 101 invoke(Constant.M_Select, new Object[] {text}); 102 } 103 104 /** 105 * Sets no selection in a list (Sometimes this corresponds to the first 106 * entry in the list) 107 * 108 */ setNoSelection()109 public void setNoSelection() { 110 invoke(Constant.M_SetNoSelection); 111 } 112 113 /** 114 * Set the text of the combo box 115 */ setText(String text)116 public void setText(String text) { 117 invoke(Constant.M_SetText, new Object[] {text}); 118 } 119 120 /** 121 * Check if the list box has the specified item 122 * @param str 123 * @return 124 */ hasItem(String str)125 public boolean hasItem(String str) { 126 int len = getItemCount(); 127 for (int i = 0; i < len; i++) { 128 String text = getItemText(i); 129 if (str.equals(text)) 130 return true; 131 } 132 return false; 133 } 134 } 135