Fakultet tehničkih nauka u Novom Sadu
Katedra za informatiku
plugins/org.eclipse.swt.gtk.linux.x86_xxxxx.jar
plugins/org.eclipse.swt_xxxxx.jar
public class HelloSWT {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
Text text = new Text(shell, SWT.CENTER);
text.setText("Hello SWT!");
text.pack();
shell.pack();
shell.open();
while(!shell.isDisposed()){
if(!display.readAndDispatch()){
display.sleep();
}
}
}
}
Najvažnije metode:
Display
objekat za koji je tekući thread EDT (Event Dispatching
Thread).Display klase.Display objektom.Shell) primaju kao jedan od parametara stil.Shell je
SWT.SHELL_TRIM koji podrazumeva TITLE, MIN,
MAX, RESIZE, CLOSE stilove.OR operatorom (|).
org.eclipse.swt_xxxorg.eclipse.swt.[tehnologija]org.eclipse.jface_xxxorg.eclipse.jface.text_xxxorg.eclipse.jface.databinding_xxxorg.eclipse.equinox.common_xxxorg.eclipse.core.commands_xxx
public class HelloJFace extends ApplicationWindow{
public HelloJFace() {
super(null);
}
@Override
protected Control createContents(Composite parent) {
Text text = new Text(parent, SWT.CENTER);
text.setText("Hello SWT and JFace!");
text.pack();
return parent;
}
public static void main(String[] args) {
HelloJFace awin = new HelloJFace();
awin.setBlockOnOpen(true);
awin.open();
Display.getCurrent().dispose();
}
}
ApplicationWindow predstavlja glavni prozor aplikacije.Shell i Display objekte.createContents.open() prozora podrazumevano nije blokirajuća jer je
moguće kreirati više prozora najvišeg nivoa. Ukoliko želimo da
open() poziv metode bude blokirajući, dok korisnik ne zatraži
zatvaranje prozora, pozivamo setBlockOnOpen(true).Display.getCurrent().dispose().
Composite u nastavku).dispose).int koji opisuje stil widget-a.Display objekat pridružen widget-u.
Composite objekat ima listu svojih podkomponenti.Composite je kontrola pa može da se nađe svuda gde se
mogu naći druge vrste kontrola.Scrollable tako da svaki kompozit može
imati scrollbar-s.Display objekat u
metodi readAndDisplatch.Display ga šalje
Shell objektu najvišeg nivoa koji je "spojen" za
dati Display objekat.Shell određuje kojem Widget-u treba
da prosledi događaj.Widget obaveštava sve osluškivače da se događaj
desio.
org.eclipse.swt.widgets.Listener interfejs koja
definiše metodu handleEvent(Event).Widget-e putem metode
addListener(int eventType, Listener)Event klasu.*Listener interfejsa
koji nasleđuju
org.eclipse.swt.internal.SWTEventListener.Widget-e putem metoda oblika
add*Listener().*Event klase – svaki
listener ima svoju Event klasu.Event ili naslednicama
TypedEvent.Listener interfejsa – AdapteriTreeListener → TreeAdapterContributionManager klasu (implementiraju
IContributionManager).ActionContributionItem – wrapper za
Action objekat koji se dodaje na
IContributionManager.ContributionManager predstavlja kontejner za
ContributionItem objekte.ContributionManager-a.ActionContributionItem-a.Composite objektu može se prikazati
kao dugme dok će na meniju biti stavka menija.Composite objekta.Composite objekta
postavlja Layout.Control klase koje se dodaju u
Composite mogu primiti konfiguraciju sa
setLayoutData(Object) pozivom.Layout objekat
prilikom izračunavanja veličina i pozicija.
Viewer-i koriste Provider-e za
dobavljanje informacija koje treba da prikažu.Provider-i implementiraju interfejse
IContentProvider i IBaseLabelProvider.IContentProvider-i se bave strukturom koja se
prikazuje.IBaseLabelProvider se bave vizuelnim
karakteristikama - labele i ikone.Provider-i:
ISelectionProvider, IColorProvider,
IFontProvider itd.
Primeri sa Viewerima sa JFaceSnippets-a: SimpleTreeViewer, VirtualTree, TableViewerShowHide, TableViewerAlternatingColors, TreeCustomMenu, StyledCellLabel, SimpleCellEditor, DoubleClickCellEditor, CellEditorContentProposal...