1 6 package com.nightlabs.ipanema.config; 7 8 import java.util.ArrayList ; 9 import java.util.Iterator ; 10 import java.util.List ; 11 12 import javax.jdo.FetchPlan; 13 14 import org.eclipse.swt.SWT; 15 import org.eclipse.swt.layout.GridData; 16 import org.eclipse.swt.widgets.Combo; 17 import org.eclipse.swt.widgets.Composite; 18 19 import com.nightlabs.ipanema.base.login.Login; 20 import com.nightlabs.rcp.composite.TightWrapperComposite; 21 22 23 27 public class UserConfigCombo extends TightWrapperComposite { 28 29 public static final String [] DEFAULT_FETCH_GROUP = new String [] { 30 FetchPlan.DEFAULT, 31 FetchPlan.VALUES 32 }; 33 34 private Combo comboControl; 35 private List userConfigs = new ArrayList (); 36 private String [] fetchGroup = DEFAULT_FETCH_GROUP; 37 38 public UserConfigCombo(Composite parent, int style) { 39 this(parent, style, null, null); 40 } 41 42 public UserConfigCombo(Composite parent, int style, UserConfigGroup userConfigGroup) { 43 this(parent, style, userConfigGroup, null); 44 } 45 46 public UserConfigCombo(Composite parent, int style, UserConfigGroup userConfigGroup, String [] fetchGroup) { 47 super(parent, style, true); 48 setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 49 comboControl = new Combo(this, SWT.READ_ONLY); 50 comboControl.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 51 if (fetchGroup != null) 52 this.fetchGroup = fetchGroup; 53 if (userConfigGroup != null) 54 updateCombo(userConfigGroup); 55 } 56 57 public void updateCombo(UserConfigGroup userConfigGroup) { 58 comboControl.removeAll(); 59 if (userConfigGroup == null) 60 return; 61 userConfigs.clear(); 62 try { 63 ConfigManager configManager = ConfigManagerUtil.getHome(Login.getLogin().getInitialContextProperties()).create(); 64 userConfigs.addAll(configManager.getUserConfigsForGroup(userConfigGroup, fetchGroup)); 65 } catch (Throwable e) { 66 throw new RuntimeException (e); 67 } 68 for (Iterator iter = userConfigs.iterator(); iter.hasNext();) { 69 UserConfig config = (UserConfig) iter.next(); 70 comboControl.add(config.getUserConfigID()); 71 } 72 } 73 74 public UserConfig getSelectedUserConfig() { 75 if (comboControl.getSelectionIndex() >= 0) { 76 return (UserConfig)userConfigs.get(comboControl.getSelectionIndex()); 77 } 78 else 79 return null; 80 } 81 82 public Combo getComboControl() { 83 return comboControl; 84 } 85 } 86
| Popular Tags
|