at.spardat.xma.mdl.list.IListWM Maven / Gradle / Ivy
The newest version!
/*******************************************************************************
* Copyright (c) 2003, 2007 s IT Solutions AT Spardat GmbH .
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* s IT Solutions AT Spardat GmbH - initial API and implementation
*******************************************************************************/
/*
* Created on 04.11.2003
*
*
*
*/
package at.spardat.xma.mdl.list;
import java.util.Collection;
import java.util.Map;
import at.spardat.xma.mdl.Atom;
import at.spardat.xma.mdl.IFormattable;
import at.spardat.xma.mdl.ISelectable;
/**
* Interface of the widged model to represent a list of choises. It can be used with
* the SWT-widgets Combo and List. The entries of the list have to be provided by the
* programmer. All entries must by {@link Atom}s of the same type.
* The supported types are T_STRING, T_BCD, T_DATE and T_TIMESTAMP.
* There are convinience methods to use Java Strings directly.
* These Strings are converted to Atoms of type T_STRING internally.
* For domain values please use {@link ListDomWM}.
*
* @author s2877
*/
public interface IListWM extends ISelectable, IFormattable {
/**
* If the IListWM is used with the SWT-Control List, you can allow multi-selection
* by specifying this style constant in the constructor.
* Multi-selection is possible for List only.
*/
public static final int S_MULTI_SELECT = 1;
/**
* If the IListWM is used with the SWT-Control Combo, you can allow entering
* of values not contained in the list.
* With S_NON_STRICT the user can enter additional values in the textfield of
* the combo box.
*/
public static final int S_NOT_STRICT = 2;
/**
* Adds an entry to the list. The entry is appended
* at the end of the selection list.
* @param entry to add
*/
void add(Atom entry);
/**
* Adds an entry to the list and associates it with a key.
* The entry is appended at the end of the selection list.
* All selection and entry related methods then work with the key:
* contains(), indexOf(), remove(), deselect(), select(), getSelected(), etc.
* This method can only be used if the model has the style strict, otherwise an exception is thrown!
*
* @param key to add
* @param entry to add
*/
void add(String key, Atom entry);
/**
* Inserts an entry into the list at the specified position and associates it with a key.
* All selection and entry related methods then work with the key:
* contains(), indexOf(), remove(), deselect(), select(), getSelected(), etc.
* This method can only be used if the model has the style strict, otherwise an exception is thrown!
*
* @param key to add
* @param entry to add
*/
void add(int index,String key, Atom entry);
/**
* Adds an entry to the list and associates it with a key.
* The entry is appended at the end of the selection list.
* All selection and entry related methods then work with the key:
* contains(), indexOf(), remove(), deselect(), select(), getSelected(), etc.
* This method can only be used if the model has the style strict, otherwise an exception is thrown!
*
* @param key to add
* @param entry to add
*/
void add(String key, String entry);
/**
* Inserts an entry into the list at the specified position and associates it with a key.
* All selection and entry related methods then work with the key:
* contains(), indexOf(), remove(), deselect(), select(), getSelected(), etc.
* This method can only be used if the model has the style strict, otherwise an exception is thrown!
*
* @param key to add
* @param entry to add
*/
void add(int index, String key, String entry);
/**
* Inserts an entry into the list at the specified position.
* @param index the desired zero base index of the new entry
* @param entry to add
*/
void add(int index, Atom entry);
/**
* Adds the entries to the list. The entries are appended
* at the end of the list.
* @param entries to add
*/
void add(Atom[] entries);
/**
* Adds the entries to the list. The entries are appended
* at the end of the list. The collection may contain Atoms or Strings.
* If it contains Atoms, all entries must be Atoms with the same type.
* If it contains Strings, all entries must be Strings.
* @param entries to add
*/
void add(Collection entries);
/**
* Adds all the key-value pairs from the map the list.
* The entries are appended at the end of the list.
* This method iterates over the Map and calls:
* at.spardat.xma.mdl.list.IListWM#add(java.lang.String, java.lang.String).
*
* The keys in the Map have to be of the type String, the values have to be of the type String or Atom.
* As the iteration order of a HashMap is undefined, it might be advisable to use a TreeMap or a LinkedHashMap.
*
* All selection and entry related methods then work with the keys:
* contains(), indexOf(), remove(), deselect(), select(), getSelected(), etc.
* This method can only be used if the model has the style strict, otherwise an exception is thrown!
*
* @param map -which is iterated
* @see at.spardat.xma.mdl.list.IListWM#add(Map map)
*/
public void add(Map map);
/**
* Get the entry at the specified position.
* @param index the index of the desired entry.
* @return the entry at the given index.
*/
Atom getEntry(int index);
/**
* Get the entry for the given key.
* @param key string representation of the desired entry.
* @return the entry corresponding to the string representation.
*/
Atom getEntry(String key);
/**
* Get the key for a given index.
* @param index
* @return
*/
public String getKey(int index);
/**
* Get the index of the given entry.
* @param entry the entry of which the index is desired.
* @return the index of the given entry.
*/
int indexOf(Atom entry);
/**
* Removes an entry from the list.
* @param entry to remove
*/
void remove(Atom entry);
/**
* Removes the entry at the given position from the list.
* @param index
*/
void remove(int index);
/**
* Replaces an entry in the list. The old entry at the
* given index position is replaced by the entry given
* as parameter.
* @param index the index of the entry to replace.
* @param newEntry the new entry to insert.
*/
void replace(int index, Atom newEntry);
/**
* Replaces an entry (key-value pair) in the list. The old entry at the
* given index position is replaced by the entry given
* as parameter.
* This method can only be used if the model has the style strict, otherwise an exception is thrown!
*
* @param index the index of the entry to replace.
* @param newKey the new key to insert.
* @param newEntry the new entry to insert.
*/
void replace(int index, String newKey, Atom newEntry);
/**
* Replaces an entry (key-value pair) in the list. The old entry at the
* given index position is replaced by the entry given
* as parameter.
*
* @param index the index of the entry to replace.
* @param newKey the new key to insert.
* @param newEntry the new entry to insert.
*/
void replace(int index, String newKey, String newEntry);
/**
* Returns true if the list contains the given entry.
* @param entry
* @return true if the given entry is contained in the list.
*/
boolean contains(Atom entry);
/**
* Adds an entry to the list. The entry is appended
* at the end of the selection list.
* @param entry to add
*/
void add(String entry);
/**
* Inserts an entry into the list at the specified position.
* @param index the desired zero base index of the new entry
* @param entry to add
*/
void add(int index, String entry);
/**
* Adds the entries to the list. The entries are appended
* at the end of the list.
* @param entries to add
*/
void add(String[] entries);
/**
* Get the entry at the specified position.
* @param index the index of the desired entry.
* @return the entry at the given index.
*/
String getStringEntry(int index);
/**
* Get the index of the given entry.
* @param entry the entry of which the index is desired.
* @return the index of the given entry.
*/
int indexOf(String entry);
/**
* Removes an entry from the list.
* @param entry to remove
*/
void remove(String entry);
/**
* Replaces an entry in the list. The old entry at the
* given index position is replaced by the entry given
* as parameter.
* @param index the index of the entry to replace.
* @param newEntry the new entry to insert.
*/
void replace(int index, String newEntry);
/**
* Returns true if the list contains the given entry.
* @param entry
* @return true if the given entry is contained in the list.
*/
boolean contains(String entry);
/**
* Removes all entries from the list and deselects all selected entries.
*/
public void clear();
/**
* Gets the size of the list.
* @return the number of entries.
*/
int size();
/**
* Sets the selection of this ListWM to the given value.
* If value is empty (null or ""), the selection is cleared.
* @param value to select
*/
void set(String value);
}