KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > ipanema > language > LanguageChooserList


1 /*
2  * Created on Jan 6, 2005
3  */

4 package com.nightlabs.ipanema.language;
5
6 import java.util.Locale JavaDoc;
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 /**
22  * @author Marco Schulze - marco at nightlabs dot de
23  */

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.setHeaderVisible(true);
58
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         // Add the columns to the table
68
new TableColumn(t, SWT.LEFT).setText("language");
69         
70         // must be called AFTER all columns are added
71
viewer.setInput(contentProvider);
72         
73         StructuredSelection selection = new StructuredSelection(
74                 LanguageCache.sharedInstance().getLanguage(Locale.getDefault().getLanguage()));
75         viewer.setSelection(selection, true);
76     }
77
78     /**
79      * @see com.nightlabs.ipanema.language.LanguageChooser#getLanguage()
80      */

81     public Language getLanguage()
82     {
83         StructuredSelection selection = (StructuredSelection) viewer.getSelection();
84         return (Language) selection.getFirstElement();
85     }
86
87 }
88
Popular Tags