gridLayout.horizontalSpacing = 0;
gridLayout.verticalSpacing = 0;
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);
factory.setComposite(bottom);
gridLayout = new GridLayout(1, false);
gridLayout.marginHeight = 2;
gridLayout.horizontalSpacing = 5;
gridLayout.verticalSpacing = 0;
gridLayout.marginWidth = 2;
bottom.setLayout(gridLayout);
txtPath = new NodeEditor2(bottom, this);
txtPath.setFont(UIDATA.FONT_10B);
gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.heightHint = 70;
if(UIDATA.isMacOS) {
// gridData.heightHint = 30;
txtPath.setFont(UIDATA.FONT_11B);
}
txtPath.setLayoutData(gridData);
/*txtPath.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent event) {
if(event.keyCode == SWT.CR) {
addEditItem();
event.doit = false;
}
}
});*/
/*txtPath.text.setDoubleClickEnabled(false);
txtPath.text.addMouseListener(new MouseAdapter() {
public void mouseDown(MouseEvent e) {
if(e.count == 3) {
txtPath.setText("");
return;
}
if(e.button == 2) {
if(txtPath.getText().trim().isEmpty()) return;
addEditItem();
}
}
@SuppressWarnings("unused")
public void mouseDoubleClick(MouseEvent e) {
new TemplateHandlerAction(new char[]{'[', ']'}).handle(txtPath.text);
}
});*/
lstPath = factory.createList(bottom, SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL | SWT.H_SCROLL);
lstPath.setFont(UIDATA.FONT_10B);
lstPath.addSelectionListener(new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent e){
int selectedIndex = lstPath.getSelectionIndex();
if(selectedIndex < 0) return;
String path = lstPath.getItem(selectedIndex);
txtPath.setText(path);
List<String> removes = null;
try {
removes = traverseTree(TreeHandler.SELECT, new String[]{path});
} catch (Exception exp) {
ClientLog.getInstance().setMessage(tree.getShell(), exp);
}
if(removes == null) return ;
for(String ele : removes) lstPath.remove(ele);
if(removes.size() > 0 && lstPath.getItemCount() > 0) lstPath.select(0);
}
});
Object menu;
if(XPWidgetTheme.isPlatform()) {
PopupMenu popupMenu = new PopupMenu(lstPath, XPWidgetTheme.THEME);
menu = new CMenu();
popupMenu.setMenu((CMenu)menu);
} else {
menu = new Menu(getShell(), SWT.POP_UP);
lstPath.setMenu((Menu)menu);
}
factory.createStyleMenuItem(menu, "menuClearSelected", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
lstPath.setSelection(new String[0]);
}
});
factory.createStyleMenuItem(menu, SWT.SEPARATOR);
factory.createStyleMenuItem(menu, "menuRemoveSelected", "-.gif", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
int idx = lstPath.getSelectionIndex();
if(idx < 0) return;
String path = lstPath.getItem(idx);
lstPath.remove(idx);
try {
traverseTree(TreeHandler.REMOVE, new String[]{path});
} catch (Exception e) {
ClientLog.getInstance().setMessage(tree.getShell(), e);
}
txtPath.setText("");
}
});
factory.createStyleMenuItem(menu, "menuRemove", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
try {
traverseTree(TreeHandler.REMOVE, new String[]{});
} catch (Exception e) {
ClientLog.getInstance().setMessage(tree.getShell(), e);
}
lstPath.removeAll();
txtPath.setText("");
}
});
// cboPath.setMenu(menu);
gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 6;
gridData.heightHint = 50;
lstPath.setLayoutData(gridData);
Composite buttonComposite = new Composite(bottom, SWT.NONE);
gridData = new GridData(GridData.FILL_HORIZONTAL);
buttonComposite.setLayoutData(gridData);
factory.setComposite(buttonComposite);
gridLayout = new GridLayout(3, false);
gridLayout.marginHeight = 0;
gridLayout.horizontalSpacing = 15;
gridLayout.verticalSpacing = 0;
gridLayout.marginWidth = 10;
buttonComposite.setLayout(gridLayout);
Label lbl = factory.createLabel(SWT.NONE);
gridData = new GridData(GridData.FILL_HORIZONTAL);
lbl.setLayoutData(gridData);
String tip = factory.getLabel("butOk");
final ToolbarResource resources = ToolbarResource.getInstance();
butOk = resources.createIcon(factory.getComposite(),
resources.getImageGo(), tip, new HyperlinkAdapter(){
@SuppressWarnings("unused")
public void linkActivated(HyperlinkEvent e) {
butOk.setImage(resources.getImageGo());
}
@SuppressWarnings("unused")
public void linkExited(HyperlinkEvent e) {
butOk.setImage(resources.getImageGo());
}
@SuppressWarnings("unused")
public void linkEntered(HyperlinkEvent e) {
butOk.setImage(resources.getImageGo());
}
});
butOk.addMouseListener(new MouseAdapter() {
@SuppressWarnings("unused")
public void mouseUp(MouseEvent e) {
invisibleComponent();
clickOk();
}
@SuppressWarnings("unused")
public void mouseDown(MouseEvent e) {
butOk.setImage(resources.getImageGo1());
butOk.redraw();
}
});
tip = factory.getLabel("butCancel");
butCancel = resources.createIcon(factory.getComposite(),
resources.getImageCancel(), tip, new HyperlinkAdapter(){
@SuppressWarnings("unused")
public void linkActivated(HyperlinkEvent e) {
butCancel.setImage(resources.getImageCancel());
}
@SuppressWarnings("unused")
public void linkExited(HyperlinkEvent e) {
butCancel.setImage(resources.getImageCancel());
}
@SuppressWarnings("unused")
public void linkEntered(HyperlinkEvent e) {
butCancel.setImage(resources.getImageCancel());
}
});
butCancel.addMouseListener(new MouseAdapter() {
@SuppressWarnings("unused")
public void mouseUp(MouseEvent e) {
invisibleComponent();
clickCancel();
}
@SuppressWarnings("unused")
public void mouseDown(MouseEvent e) {
butCancel.setImage(resources.getImageCancel1());
butCancel.redraw();
}
});
// Button button = factory.createButton("butOk", new SelectionAdapter(){
// @SuppressWarnings("unused")
// public void widgetSelected(SelectionEvent evt) {
// invisibleComponent();
// clickOk();
// }
// });
// button.setFont(UIDATA.FONT_9VB);
// factory.createButton("butCancel", new SelectionAdapter(){
// @SuppressWarnings("unused")
// public void widgetSelected(SelectionEvent evt) {
// invisibleComponent();
// clickCancel();
// }
// });
factory.setComposite(bottom);
gridData = new GridData(GridData.HORIZONTAL_ALIGN_END);
String url = "";
try {
Preferences prefs = Preferences.userNodeForPackage(HTMLExplorer.class);