gridLayout.marginWidth = 0;
setLayout(gridLayout);
ApplicationFactory factory = new ApplicationFactory(this, "HTMLExplorer", getClass().getName());
SashForm sash0 = new SashForm(this, SWT.HORIZONTAL);
sash0.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.VERTICAL_ALIGN_BEGINNING));
Composite browserComposite = new Composite(sash0, SWT.NONE);
gridLayout = new GridLayout(1, false);
gridLayout.marginHeight = 0;
gridLayout.horizontalSpacing = 0;
gridLayout.verticalSpacing = 0;
gridLayout.marginWidth = 0;
browserComposite.setLayout(gridLayout);
ToolbarResource.createInstance(getDisplay(), "HTMLExplorer", HTMLExplorer.class);
toolbar = new HTMLExplorerToolbar(factory, browserComposite, this);
GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
toolbar.setLayoutData(gridData);
browser = ApplicationFactory.createBrowser(browserComposite, PageMenu.class);
if(ApplicationFactory.isMozillaBrowser()) {
browser.addProgressListener (new ProgressAdapter () {
@SuppressWarnings("unused")
public void completed (ProgressEvent event) {
nsIWebBrowser webBrowser = (nsIWebBrowser)browser.getWebBrowser ();
if(webBrowser == null) return;
nsIDOMWindow domWindow = webBrowser.getContentDOMWindow ();
if(domWindow == null) return;
nsIDOMEventTarget target = (nsIDOMEventTarget)domWindow.queryInterface (nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID);
nsIDOMEventListener listener = new nsIDOMEventListener () {
public nsISupports queryInterface (String uuid) {
if (uuid.equals (nsIDOMEventListener.NS_IDOMEVENTLISTENER_IID) ||
uuid.equals (nsIDOMEventListener.NS_ISUPPORTS_IID)) {
return this;
}
return null;
}
public void handleEvent (nsIDOMEvent devent) {
nsIDOMElement element = (nsIDOMElement)devent.getTarget().queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID);
String text = element.getFirstChild().getNodeValue();
if(text == null || text.trim().isEmpty() || "null".equalsIgnoreCase(text)) return;
search(text.trim());
}
};
target.addEventListener ("click", listener, false);
}
});
}
gridData = new GridData(GridData.FILL_BOTH);
browser.setLayoutData(gridData);
browser.addProgressListener(new ProgressAdapter(){
public void changed(ProgressEvent event){
if(event.total == 0) return;
int ratio = event.current * 100 / event.total;
toolbar.getProgressBar().setSelection(ratio);
browserBusy = event.current != event.total;
if(!browserBusy) browserIndex = 0;
toolbar.showProgress();
}
@SuppressWarnings("unused")
public void completed(ProgressEvent event){
/* browser.addLocationListener (new LocationAdapter () {
public void changed (LocationEvent event) {
browser.removeLocationListener (this);
function.dispose ();
}
});*/
toolbar.getProgressBar().setSelection(0);
browserBusy = false;
browserIndex = 0;
String address = browser.getUrl();
toolbar.showInputAddress();
if(address == null ||
address.trim().length() == 0 || !address.startsWith("http")) return;
try {
new java.net.URL(address);
toolbar.setText(address);
toolbar.addAddressToList(address);
}catch(Exception exp){
}
}
});
browser.addStatusTextListener( new StatusTextListener(){
@SuppressWarnings("unused")
public void changed(StatusTextEvent event){
String url = browser.getUrl();
if(url == null) return;
if(url.indexOf('/') < 0) return;
toolbar.setText(browser.getUrl());
}
});
factory.setComposite(browserComposite);
tree = new Tree(sash0, SWT.MULTI | SWT.BORDER);
tree.addSelectionListener(new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
selectTree();
}
});
tree.addMouseListener(new MouseAdapter() {
public void mouseDown(MouseEvent e) {
if(e.button == 2) addItems();
}
});
Object treeMenu ;
if(XPWidgetTheme.isPlatform()) {
PopupMenu popupMenu = new PopupMenu(tree, XPWidgetTheme.THEME);
treeMenu = new CMenu();
popupMenu.setMenu((CMenu)treeMenu);
} else {
treeMenu = new Menu(getShell(), SWT.POP_UP);
tree.setMenu((Menu)treeMenu);
}
factory.createStyleMenuItem( treeMenu, "itemAdd", "+.gif", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
try {
traverseTree(TreeHandler.SELECT, addItems());
} catch (Exception e) {
ClientLog.getInstance().setMessage(tree.getShell(), e);
}
}
});
factory.createStyleMenuItem(treeMenu, "itemRemove", "-.gif", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
try {
traverseTree(TreeHandler.REMOVE, new String[]{});
removeItem();
traverseTree(TreeHandler.SELECT, lstPath.getItems());
} catch (Exception e) {
ClientLog.getInstance().setMessage(tree.getShell(), e);
}
}
});
factory.createStyleMenuItem(treeMenu, SWT.SEPARATOR);
factory.createStyleMenuItem(treeMenu, "itemExpand", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
expand(true);
}
});
factory.createStyleMenuItem(treeMenu, "itemCollapse", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
expand(false);
}
});
factory.createStyleMenuItem(treeMenu, SWT.SEPARATOR);
factory.createStyleMenuItem(treeMenu, "itemExpandDataNode", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
expandDataNode();
}
});
factory.createStyleMenuItem(treeMenu, "itemCollapseTree", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
TreeItem [] items = tree.getItems();
if(items == null) return;
for(TreeItem item : items) {
expand(item, false);
}
}
});
factory.createStyleMenuItem(treeMenu, SWT.SEPARATOR);
factory.createStyleMenuItem( treeMenu, "itemView", "view.gif", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
viewItem();
}
});
sash0.setWeights( new int[]{500, 300});
handler = new TreeHandler();
Composite bottom = new Composite(this, SWT.NONE);
gridData = new GridData(GridData.FILL_HORIZONTAL);
bottom.setLayoutData(gridData);