SoFunction
Updated on 2025-04-06

SWT (JFace) Experience List Demo Summary


package swt_jface.demo3;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
public class SampleListViewer {

Display display = new Display();
Shell shell = new Shell(display);

ListViewer listViewer;
public static class Language {
public String genre;
public boolean isObjectOriented;

public Language() { }
public Language(String genre, boolean isObjectOriented) {
= genre;
= isObjectOriented;
}

public String toString() {
return "Lang: " + genre + " [" + (isObjectOriented ? "Object-oriented" : "Procedural") + "]";
}
}

Vector languages = new Vector();

private void init() {
(new Language("Java", true));
(new Language("C", false));
(new Language("C++", true));
(new Language("SmallTalk", true));

listViewer = new ListViewer(shell);


(new IStructuredContentProvider() {
public Object[] getElements(Object inputElement) {
Vector v = (Vector)inputElement;
return ();
}

public void dispose() {
("Disposing ...");
}
public void inputChanged(
Viewer viewer,
Object oldInput,
Object newInput) {
("Input changed: old=" + oldInput + ", new=" + newInput);
}
});

//(new ArrayContentProvider());

(languages);

(new LabelProvider() {
public Image getImage(Object element) {
return null;
}
public String getText(Object element) {
return ((Language)element).genre;
}
});

(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
IStructuredSelection selection = (IStructuredSelection)();
StringBuffer sb = new StringBuffer("Selection - ");
("tatal " + () + " items selected: ");
for(Iterator iterator = (); (); ) {
(() + ", ");
}
(sb);
}
});

(new ViewerFilter() {
public boolean select(
Viewer viewer,
Object parentElement,
Object element) {

if(((Language)element).isObjectOriented)
return true;
else
return false;
}
});

(new ViewerSorter(){
public int compare(Viewer viewer, Object e1, Object e2) {
return ((Language)e1).(((Language)e2).genre);
}
});
// Object[] toBeSelectedItems = new Object[2];
// toBeSelectedItems[0] = (()-1);
// toBeSelectedItems[1] = (()-2);
// IStructuredSelection selection = new StructuredSelection(toBeSelectedItems);
//
// (selection);

// Vector v = new Vector();
// (new Language("VB", true));
//
// (v);
//
// (new Language("C#", true));
}
Button buttonAdd;
Button buttonRemove;
Button buttonModify;

private void addButtons() {

Composite composite = new Composite(shell, );
FillLayout fillLayout = new FillLayout();
= 2;

(fillLayout);

buttonAdd = new Button(composite, );
("Add");

buttonModify = new Button(composite, );
("Modify");

buttonRemove = new Button(composite, );
("Remove");

(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
String text = (shell, "New language genre: ", "Add new element", null);
if(text != null) {
(new Language(text, true));
}
(false);
}
});
(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
IStructuredSelection selection = (IStructuredSelection)();
Language language = (Language)();
if(language == null) {
("Please select a language first.");
return;
}
String text = (shell, "Rename: ", "Modify genre", );
if(text != null) {
= text;
}
(language, null);
}
});

(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
IStructuredSelection selection = (IStructuredSelection)();
Language language = (Language)();
if(language == null) {
("Please select a language first.");
return;
}
(language);
("Removed: " + language);
(false);
}
});
}
public SampleListViewer() {

RowLayout rowLayout = new RowLayout();
(rowLayout);
(new Label(shell, )).setText("What programming languages are you proficient in? ");
init();
addButtons();
();
();

while (!()) {
if (!()) {
();
}
}
();
}
public static void main(String[] args) {
new SampleListViewer();
}
}