Sep 29
Check out the interesting article at Joel’s website: http://www.joelonsoftware.com/items/2009/09/23.html
Sep 28
Have you heard that Java support scripting engine? Try the source code below:
-
-
import javax.script.ScriptEngine;
-
import javax.script.ScriptEngineManager;
-
import javax.script.ScriptException;
-
-
-
public class TestScript {
-
public static void main
(String[] args
) {
-
String script =
"println(’Hello, world’);";
-
script += "s=0;";
-
script += "for(var i=1; i<=100; i++)";
-
script += "s += i;";
-
script += "println(’s=’+s);";
-
-
ScriptEngineManager factory = new ScriptEngineManager();
-
ScriptEngine engine = factory.getEngineByName("JavaScript");
-
try {
-
engine.eval(script);
-
} catch (ScriptException e) {
-
e.printStackTrace();
-
}
-
}
-
}
-
Sep 25
Let’s say you need to dynamically adjust a widget size, and then update scroll bar information. Things are pretty simple, if we understand how eclipse layout works.
I have a PageBook widget, and wish to resize the form page as selection changes. Here is the important part:
-
-
// other code
-
pageBook.showPage(parent);
-
Point computeSize = pageBook.
computeSize(SWT.
DEFAULT, SWT.
DEFAULT);
-
-
// the following two statements are very important, because they will tell swt/jface how to layout.
-
GridDataFactory.defaultsFor(pageBook).align(SWT.FILL, SWT.TOP).span(2, 1).hint(SWT.DEFAULT, computeSize.y + 20).applyTo(pageBook);
-
-
pageBook.layout(true, true);
-
-
// reflow the form
-
form.reflow(true);
-
Sep 24
Below is very straightforward code snippet to use PageBook. It is used together with eclipse form. Therefore you will see widgets are created via the FormToolkit class.
-
-
toolkit = new FormToolkit(container.getDisplay());
-
form = toolkit.createScrolledForm(container);
-
-
-
GridLayoutFactory.fillDefaults().numColumns(1).applyTo(parent);
-
-
// create a table as selection provider
-
final Table table = toolkit.createTable(parent, SWT.BORDER | SWT.VIRTUAL);
-
table.setHeaderVisible(true);
-
table.setLinesVisible(true);
-
for(int i=1; i<=12; i++){
-
TableItem item = new TableItem(table, 0);
-
item.setText("Item " + i);
-
}
-
-
toolkit.createLabel(parent, "Selected pagebook:");
-
-
// create a PageBook
-
final ScrolledPageBook pageBook = toolkit.createPageBook(parent, SWT.NONE);
-
GridDataFactory.defaultsFor(pageBook).grab(true, true).applyTo(pageBook);
-
-
// create PageBook controls
-
for(int i=0; i<table.getItemCount(); i++){
-
TableItem item = table.getItem(i);
-
Composite pageContainer = pageBook.
createPage(item.
getText());
-
GridLayoutFactory.fillDefaults().numColumns(1).applyTo(pageContainer);
-
-
toolkit.createLabel(pageContainer, item.getText());
-
toolkit.createText(pageContainer, "to be edited");
-
-
pageBook.showPage(item.getText());
-
}
-
-
pageBook.showEmptyPage();
-
-
// add selection listener, and show relative PageBook on selection
-
table.addSelectionListener(new SelectionAdapter(){
-
public void widgetSelected(SelectionEvent e) {
-
TableItem item = (TableItem) e.item;
-
pageBook.showPage(item.getText());
-
}
-
});
-