📄 list.java
字号:
// //#endif// } // //#endif// this.listType = listType;// // this.choiceGroup = new ChoiceGroup( null, this.listType, stringElements, imageElements, style, true );// this.choiceGroup.autoFocusEnabled = true;// this.choiceGroup.screen = this;// this.choiceGroup.isFocused = true;// this.container = this.choiceGroup; } /** * Creates a new <code>List</code>, specifying its title, the type * the type of the * <code>List</code>, and an array of <code>ChoiceItem</code>s * to be used as its initial contents. * * <p>The <code>items</code>s array must be non-null and * every <code>ChoiceItem</code> must have its text be a non-null * <code>String</code>. * The length of the <code>items</code> array * determines the number of elements in the <code>ChoiceGroup</code>.</p> * * @param title the screen's title (see Displayable) * @param listType one of IMPLICIT, EXCLUSIVE, or MULTIPLE * @param items set of <code>ChoiceItem</code>s specifying the ChoiceGroup elements * @throws NullPointerException if <code>items</code> is null * or if getText() for one of the <code>ChoiceItem</code> in the array * retuns a null <code>String</code>. * @throws IllegalArgumentException if listType is not one of IMPLICIT, EXCLUSIVE, or MULTIPLE * @see Choice#EXCLUSIVE * @see Choice#MULTIPLE * @see Choice#IMPLICIT */ public List( String title, int listType, ChoiceItem[] items) { this( title, listType, items, null ); } /** * Creates a new <code>List</code>, specifying its title, the type * the type of the * <code>List</code>, and an array of <code>ChoiceItem</code>s * to be used as its initial contents. * * <p>The <code>items</code>s array must be non-null and * every <code>ChoiceItem</code> must have its text be a non-null * <code>String</code>. * The length of the <code>items</code> array * determines the number of elements in the <code>ChoiceGroup</code>.</p> * * @param title the screen's title (see Displayable) * @param listType one of IMPLICIT, EXCLUSIVE, or MULTIPLE * @param items set of <code>ChoiceItem</code>s specifying the ChoiceGroup elements * @param style the style of this list * @throws NullPointerException if <code>items</code> is null * or if getText() for one of the <code>ChoiceItem</code> in the array * retuns a null <code>String</code>. * @throws IllegalArgumentException if listType is not one of IMPLICIT, EXCLUSIVE, or MULTIPLE * @see Choice#EXCLUSIVE * @see Choice#MULTIPLE * @see Choice#IMPLICIT */ public List( String title, int listType, ChoiceItem[] items, Style style) { super( title, style, false ); //#ifndef polish.skipArgumentCheck if (listType != Choice.EXCLUSIVE && listType != Choice.MULTIPLE && listType != Choice.IMPLICIT ) { //#ifdef polish.debugVerbose throw new IllegalArgumentException("invalid list-type: " + listType ); //#else //# throw new IllegalArgumentException(); //#endif } //#endif this.listType = listType; //#ifdef polish.i18n.useDynamicTranslations String selectLabel = Locale.get("polish.command.select"); if ( selectLabel != SELECT_COMMAND.getLabel()) { SELECT_COMMAND = new Command( selectLabel, Command.ITEM, 3 ); this.selectCommand = SELECT_COMMAND; } //#endif this.choiceGroup = new ChoiceGroup( null, this.listType, items, style, true ); this.choiceGroup.autoFocusEnabled = true; this.choiceGroup.screen = this; this.choiceGroup.isFocused = true; this.container = this.choiceGroup; } /** * Gets the number of elements in the <code>List</code>. * * @return the number of elements in the List * @see Choice#size() in interface Choice */ public int size() { return this.container.size(); } /** * Gets the <code>String</code> part of the element referenced by * <code>elementNum</code>. * * @param elementNum - the index of the element to be queried * @return the string part of the element * @throws IndexOutOfBoundsException - if elementNum is invalid * @see Choice#getString(int) in interface Choice * @see #getImage(int) */ public String getString(int elementNum) { return this.choiceGroup.getString( elementNum ); } /** * Gets the <code>Image</code> part of the element referenced by * <code>elementNum</code>. * * @param elementNum the number of the element to be queried * @return the image part of the element, or null if there is no image * @throws IndexOutOfBoundsException if elementNum is invalid * @see Choice#getImage(int) in interface Choice * @see #getString(int) */ public Image getImage( int elementNum ) { return this.choiceGroup.getImage( elementNum ); } /** * Gets the <code>ChoiceItem</code> of the element referenced by * <code>elementNum</code>. * * @param elementNum the number of the element to be queried * @return the ChoiceItem of the element * @throws IndexOutOfBoundsException if elementNum is invalid */ public ChoiceItem getItem( int elementNum ) { return (ChoiceItem)this.choiceGroup.get( elementNum ); } /** * Appends an element to the <code>List</code>. * * @param stringPart the string part of the element to be added * @param imagePart the image part of the element to be added, or null if there is no image part * @return the assigned index of the element * @throws NullPointerException if stringPart is null * @see Choice#append(String, Image) in interface Choice */ public int append( String stringPart, Image imagePart) { return append( stringPart, imagePart, null ); } /** * Appends an element to the <code>List</code>. * * @param stringPart the string part of the element to be added * @param imagePart the image part of the element to be added, or null if there is no image part * @param elementStyle the style for the new list element. * @return the assigned index of the element * @throws NullPointerException if stringPart is null * @see Choice#append(String, Image) in interface Choice */ public int append( String stringPart, Image imagePart, Style elementStyle ) { return append( new ChoiceItem( stringPart, imagePart, this.listType, elementStyle )); } /** * Appends a <code>ChoiceItem</code> to the <code>List</code>. * * @param item ChoiceItem to be added * @return the assigned index of the element */ public int append( ChoiceItem item ) { //#ifdef polish.css.show-text-in-title if (this.showTextInTitle){ String stringPart = item.getText(); if (item.getImage() != null && stringPart != null) { item.setText( null ); this.titles.add( stringPart ); if (this.titles.size() == 1) { // now set the title of the first item: setTitle( stringPart ); } } else { this.titles.add( "" ); } } //#endif int number = this.choiceGroup.append( item ); //#if polish.List.suppressCommands != true if (number == 0) { // the first item has been inserted: if (this.listType == IMPLICIT && this.selectCommand != null ) { //#if polish.List.suppressSelectCommand != true addCommand( this.selectCommand ); //#endif } else { //#if polish.List.suppressMarkCommands != true setItemCommands(this.choiceGroup); //#endif } } //#endif return number; } /** * Inserts an element into the <code>List</code> just prior to the element specified. * * @param elementNum the index of the element where insertion is to occur * @param stringPart the string part of the element to be inserted * @param imagePart the image part of the element to be inserted, or null if there is no image part * @throws IndexOutOfBoundsException if elementNum is invalid * @throws NullPointerException if stringPart is null * @see Choice#insert(int, String, Image) in interface Choice */ public void insert(int elementNum, String stringPart, Image imagePart) { this.choiceGroup.insert( elementNum, stringPart, imagePart, null ); } /** * Inserts an element into the <code>List</code> just prior to the element specified. * * @param elementNum the index of the element where insertion is to occur * @param stringPart the string part of the element to be inserted * @param imagePart the image part of the element to be inserted, or null if there is no image part * @param elementStyle the style for the new list element. * @throws IndexOutOfBoundsException if elementNum is invalid * @throws NullPointerException if stringPart is null * @see Choice#insert(int, String, Image) in interface Choice */ public void insert(int elementNum, String stringPart, Image imagePart, Style elementStyle ) { this.choiceGroup.insert( elementNum, stringPart, imagePart, elementStyle ); } /** * Inserts an element into the <code>List</code> just prior to the element specified. * * @param elementNum the index of the element where insertion is to occur * @param item ChoiceItem of the element to be inserted * @throws IndexOutOfBoundsException if elementNum is invalid */ public void insert(int elementNum, ChoiceItem item) { this.choiceGroup.insert( elementNum, item ); } /** * Sets the <code>String</code> and <code>Image</code> parts of the * element referenced by <code>elementNum</code>, * replacing the previous contents of the element. * * @param elementNum the index of the element to be set * @param stringPart the string part of the new element * @param imagePart the image part of the element, or null if there is no image part * @throws IndexOutOfBoundsException if elementNum is invalid * @throws NullPointerException if stringPart is null * @see Choice#set(int, String, Image) in interface Choice */ public void set(int elementNum, String stringPart, Image imagePart) { this.choiceGroup.set( elementNum, stringPart, imagePart, null ); } /** * Sets the <code>String</code> and <code>Image</code> parts of the * element referenced by <code>elementNum</code>, * replacing the previous contents of the element. * * @param elementNum the index of the element to be set * @param stringPart the string part of the new element * @param imagePart the image part of the element, or null if there is no image part * @param elementStyle the style for the new list element. * @throws IndexOutOfBoundsException if elementNum is invalid * @throws NullPointerException if stringPart is null * @see Choice#set(int, String, Image) in interface Choice */ public void set(int elementNum, String stringPart, Image imagePart, Style elementStyle ) { this.choiceGroup.set( elementNum, stringPart, imagePart, elementStyle ); } /** * Sets the <code>ChoiceItem</code> of the * element referenced by <code>elementNum</code>, * replacing the previous one. * * @param elementNum the index of the element to be set * @param item ChoiceItem of the new element * @throws IndexOutOfBoundsException if elementNum is invalid */ public void set(int elementNum, ChoiceItem item) { this.choiceGroup.set( elementNum, item ); } /** * Deletes the element referenced by <code>elementNum</code>. * * @param elementNum the index of the element to be deleted * @throws IndexOutOfBoundsException if elementNum is invalid * @see Choice#delete(int) in interface Choice */ public void delete(int elementNum) { //#ifdef polish.css.show-text-in-title if (this.showTextInTitle){ this.titles.remove(elementNum); } //#endif this.choiceGroup.delete(elementNum); if (this.choiceGroup.size() == 0 ) { if (this.listType == IMPLICIT && this.selectCommand != null ) { super.removeCommand( this.selectCommand ); } else { removeItemCommands(this.choiceGroup); } } } /** * Deletes all elements from this List. * * @see Choice#deleteAll() in interface Choice */ public void deleteAll() {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -