1 4 package com.nightlabs.ipanema.language; 5 6 import java.util.Locale ; 7 8 import org.apache.log4j.Logger; 9 import org.eclipse.jface.viewers.ISelectionChangedListener; 10 import org.eclipse.jface.viewers.SelectionChangedEvent; 11 import org.eclipse.jface.viewers.StructuredSelection; 12 import org.eclipse.jface.viewers.TableViewer; 13 import org.eclipse.swt.SWT; 14 import org.eclipse.swt.layout.GridData; 15 import org.eclipse.swt.widgets.Composite; 16 import org.eclipse.swt.widgets.Table; 17 import org.eclipse.swt.widgets.TableColumn; 18 19 import com.nightlabs.rcp.layout.WeightedTableLayout; 20 21 24 public class LanguageChooserList 25 extends AbstractLanguageChooser 26 { 27 public static final Logger LOGGER = Logger.getLogger(LanguageChooserList.class); 28 29 private LanguageTableContentProvider contentProvider; 30 private LanguageTableLabelProvider labelProvider; 31 private TableViewer viewer; 32 33 public LanguageChooserList(Composite parent) 34 { 35 this(parent, true); 36 } 37 public LanguageChooserList(Composite parent, boolean grabExcessHorizontalSpace) 38 { 39 super(parent, SWT.NONE, true); 40 ((GridData)getLayoutData()).grabExcessHorizontalSpace = grabExcessHorizontalSpace; 41 42 contentProvider = new LanguageTableContentProvider(); 43 labelProvider = new LanguageTableLabelProvider(); 44 viewer = new TableViewer(this, SWT.BORDER | SWT.H_SCROLL | SWT.FULL_SELECTION); 45 viewer.setContentProvider(contentProvider); 46 viewer.setLabelProvider(labelProvider); 47 48 viewer.addSelectionChangedListener(new ISelectionChangedListener() { 49 public void selectionChanged(SelectionChangedEvent event) 50 { 51 LOGGER.debug("new language: "+getLanguage().getLanguageID()); 52 fireLanguageChangeEvent(); 53 } 54 }); 55 56 Table t = viewer.getTable(); 57 t.setLinesVisible(true); 59 60 GridData tgd = new GridData(GridData.FILL_BOTH); 61 tgd.horizontalSpan = 1; 62 tgd.verticalSpan = 1; 63 64 t.setLayoutData(tgd); 65 t.setLayout(new WeightedTableLayout(new int[] {1})); 66 67 new TableColumn(t, SWT.LEFT).setText("language"); 69 70 viewer.setInput(contentProvider); 72 73 StructuredSelection selection = new StructuredSelection( 74 LanguageCache.sharedInstance().getLanguage(Locale.getDefault().getLanguage())); 75 viewer.setSelection(selection, true); 76 } 77 78 81 public Language getLanguage() 82 { 83 StructuredSelection selection = (StructuredSelection) viewer.getSelection(); 84 return (Language) selection.getFirstElement(); 85 } 86 87 } 88 | Popular Tags |