1:
37:
38: package ;
39:
40: import ;
41: import ;
42: import ;
43: import ;
44: import ;
45:
46: public class QtListPeer extends QtComponentPeer implements ListPeer
47: {
48: public QtListPeer( QtToolkit kit, List owner )
49: {
50: super( kit, owner );
51: }
52:
53: public native void init();
54:
55: protected void setup()
56: {
57: super.setup();
58: List o = (List)owner;
59:
60: setMultipleMode(o.isMultipleMode());
61:
62: String[] items = o.getItems();
63: for (int i = 0; i < items.length; i++)
64: add(items[i], i);
65:
66:
67: int[] selected = o.getSelectedIndexes();
68: for (int i = 0; i < selected.length; i++)
69: select(selected[i]);
70:
71:
72: if(selected.length == 0 && items.length > 0)
73: select( 0 );
74: }
75:
76: private boolean ignoreNextSelect = false;
77:
78:
81: private void fireChoice( int index )
82: {
83: ignoreNextSelect = true;
84: if( index == -1)
85: ((List)owner).deselect( ((List)owner).getSelectedIndex() );
86: else
87: {
88: ((List)owner).select( index );
89: ItemEvent e = new ItemEvent((List)owner,
90: ItemEvent.ITEM_STATE_CHANGED,
91: ""+index,
92: ItemEvent.SELECTED);
93: QtToolkit.eventQueue.postEvent(e);
94: }
95: }
96:
97:
100: private void itemDoubleClicked( int index, int modifiers )
101: {
102: ActionEvent e = new ActionEvent(owner,
103: ActionEvent.ACTION_PERFORMED,
104: ((List)owner).getItem( index ),
105: System.currentTimeMillis(),
106: modifiers);
107: QtToolkit.eventQueue.postEvent(e);
108: }
109:
110: private native void select(int index, boolean selected);
111:
112:
113:
114: public native void add(String item, int index);
115:
116: public void addItem(String item, int index)
117: {
118: add(item, index);
119: }
120:
121: public void clear()
122: {
123: removeAll();
124: }
125:
126:
129: public native void delItems(int start_index, int end_index);
130:
131: public void deselect(int index)
132: {
133: if( ignoreNextSelect == true )
134: ignoreNextSelect = false;
135: else
136: select(index, false);
137: }
138:
139: public native int[] getSelectedIndexes();
140:
141: public native void makeVisible(int index);
142:
143: public Dimension minimumSize(int s)
144: {
145: return getMinimumSize(s);
146: }
147:
148: public Dimension preferredSize(int s)
149: {
150: return getPreferredSize(s);
151: }
152:
153: public void removeAll()
154: {
155: delItems(0, ((List)owner).getItemCount() - 1);
156: }
157:
158: public void select(int index)
159: {
160: if( ignoreNextSelect == true )
161: ignoreNextSelect = false;
162: else
163: select(index, true);
164: }
165:
166:
170: public native void setMultipleMode(boolean multi);
171:
172: public void setMultipleSelections(boolean multi)
173: {
174: setMultipleMode(multi);
175: }
176:
177: public Dimension getPreferredSize(int s)
178: {
179:
180: return getPreferredSize();
181: }
182:
183: public Dimension getMinimumSize(int s)
184: {
185:
186: return getMinimumSize();
187: }
188: }