public DeleteContentsDialog(Browser _browser, String domain, String[] _ids, String[] titles) { this.domain = domain; this.browser = _browser; this.ids = _ids; shell = new Shell(browser.getShell(), SWT.CLOSE | SWT.RESIZE | SWT.APPLICATION_MODAL); ClientRM clientRM = DeleteDomainPlugin.getResources(); ApplicationFactory factory = new ApplicationFactory(shell, clientRM, getClass().getName()); shell.setText(factory.getLabel("title")); factory.setComposite(shell); shell.setLayout(new GridLayout(1, false)); shell.addShellListener( new ShellAdapter() { public void shellClosed(ShellEvent e) { new ShellSetter(DeleteContentsDialog.class, shell); shell.dispose(); } }); factory.setComposite(shell); RefsDecoder decoder = new RefsDecoder(); butTitles = new Button[titles.length]; // selectors = new DeleteSingleArticleSelector[10]; for (int i = 0; i < butTitles.length; i++) { titles[i] = new String(decoder.decode(titles[i].toCharArray())); butTitles[i] = new Button(shell, SWT.CHECK); butTitles[i].setSelection(true); butTitles[i].setToolTipText(clientRM.getLabel("itemDeleteTooltip")); butTitles[i].setText(titles[i]); butTitles[i].setLayoutData(new GridData()); } Composite bottom = new Composite(shell, SWT.NONE); GridData gridData = new GridData(GridData.FILL_HORIZONTAL); // gridData.horizontalSpan = 2; bottom.setLayoutData(gridData); RowLayout rowLayout = new RowLayout(); bottom.setLayout(rowLayout); rowLayout.justify = true; factory.setComposite(bottom); factory.createButton( "butDeletDomain", new SelectionAdapter() { public void widgetSelected(SelectionEvent evt) { deleteDomain(); } }); SelectionAdapter syncListener = new SelectionAdapter() { public void widgetSelected(SelectionEvent evt) { StringBuilder builder = new StringBuilder(); for (int i = 0; i < ids.length; i++) { if (!butTitles[i].getSelection()) continue; if (builder.length() > 0) builder.append('\n'); builder.append(ids[i]); } DeleteContentPlugin.delete(browser, builder.toString()); shell.dispose(); } }; factory.createButton("butOk", syncListener); factory.createButton( "butClose", new SelectionAdapter() { public void widgetSelected(SelectionEvent evt) { new ShellSetter(DeleteContentsDialog.class, shell); shell.dispose(); } }); Rectangle displayRect = UIDATA.DISPLAY.getBounds(); int x = (displayRect.width - 350) / 2; int y = (displayRect.height - 300) / 2; shell.setImage(browser.getShell().getImage()); new ShellGetter(DeleteContentsDialog.class, shell, 550, 350, x, y); shell.open(); }
void show( boolean owned, org.eclipse.swt.graphics.Point location, org.eclipse.swt.graphics.Point size, boolean addressBar, boolean menuBar, boolean statusBar, boolean toolBar) { final org.eclipse.swt.widgets.Shell shell = browser.getShell(); if (owned) { if (location != null) { shell.setLocation(location); } if (size != null) { shell.setSize(shell.computeSize(size.x, size.y)); } } org.eclipse.swt.layout.FormData data = null; if (toolBar) { toolbar = new org.eclipse.swt.widgets.ToolBar(parent, SWT.NONE); data = new org.eclipse.swt.layout.FormData(); data.top = new org.eclipse.swt.layout.FormAttachment(0, 5); toolbar.setLayoutData(data); itemBack = new org.eclipse.swt.widgets.ToolItem(toolbar, SWT.PUSH); itemBack.setText(getResourceString("Back")); itemForward = new org.eclipse.swt.widgets.ToolItem(toolbar, SWT.PUSH); itemForward.setText(getResourceString("Forward")); final org.eclipse.swt.widgets.ToolItem itemStop = new org.eclipse.swt.widgets.ToolItem(toolbar, SWT.PUSH); itemStop.setText(getResourceString("Stop")); final org.eclipse.swt.widgets.ToolItem itemRefresh = new org.eclipse.swt.widgets.ToolItem(toolbar, SWT.PUSH); itemRefresh.setText(getResourceString("Refresh")); final org.eclipse.swt.widgets.ToolItem itemGo = new org.eclipse.swt.widgets.ToolItem(toolbar, SWT.PUSH); itemGo.setText(getResourceString("Go")); itemBack.setEnabled(browser.isBackEnabled()); itemForward.setEnabled(!browser.isForwardEnabled()); org.eclipse.swt.widgets.Listener listener = new org.eclipse.swt.widgets.Listener() { public void handleEvent(org.eclipse.swt.widgets.Event event) { org.eclipse.swt.widgets.ToolItem item = (org.eclipse.swt.widgets.ToolItem) event.widget; if (item == itemBack) { browser.back(); } else { if (item == itemForward) { browser.forward(); } else { if (item == itemStop) { browser.stop(); } else { if (item == itemRefresh) { browser.refresh(); } else { if (item == itemGo) { browser.setUrl(locationBar.getText()); } } } } } } }; itemBack.addListener(SWT.Selection, listener); itemForward.addListener(SWT.Selection, listener); itemStop.addListener(SWT.Selection, listener); itemRefresh.addListener(SWT.Selection, listener); itemGo.addListener(SWT.Selection, listener); canvas = new org.eclipse.swt.widgets.Canvas(parent, SWT.NO_BACKGROUND); data = new org.eclipse.swt.layout.FormData(); data.width = 24; data.height = 24; data.top = new org.eclipse.swt.layout.FormAttachment(0, 5); data.right = new org.eclipse.swt.layout.FormAttachment(100, -5); canvas.setLayoutData(data); final org.eclipse.swt.graphics.Rectangle rect = images[0].getBounds(); canvas.addListener( SWT.Paint, new org.eclipse.swt.widgets.Listener() { public void handleEvent(org.eclipse.swt.widgets.Event e) { org.eclipse.swt.graphics.Point pt = ((org.eclipse.swt.widgets.Canvas) e.widget).getSize(); e.gc.drawImage(images[index], 0, 0, rect.width, rect.height, 0, 0, pt.x, pt.y); } }); canvas.addListener( SWT.MouseDown, new org.eclipse.swt.widgets.Listener() { public void handleEvent(org.eclipse.swt.widgets.Event e) { browser.setUrl(getResourceString("Startup")); } }); final org.eclipse.swt.widgets.Display display = parent.getDisplay(); display.asyncExec( new java.lang.Runnable() { public void run() { if (canvas.isDisposed()) { return; } if (busy) { index++; if (index == images.length) { index = 0; } canvas.redraw(); } display.timerExec(150, this); } }); } if (addressBar) { locationBar = new org.eclipse.swt.widgets.Text(parent, SWT.BORDER); data = new org.eclipse.swt.layout.FormData(); if (toolbar != null) { data.top = new org.eclipse.swt.layout.FormAttachment(toolbar, 0, SWT.TOP); data.left = new org.eclipse.swt.layout.FormAttachment(toolbar, 5, SWT.RIGHT); data.right = new org.eclipse.swt.layout.FormAttachment(canvas, -5, SWT.DEFAULT); } else { data.top = new org.eclipse.swt.layout.FormAttachment(0, 0); data.left = new org.eclipse.swt.layout.FormAttachment(0, 0); data.right = new org.eclipse.swt.layout.FormAttachment(100, 0); } locationBar.setLayoutData(data); locationBar.addListener( SWT.DefaultSelection, new org.eclipse.swt.widgets.Listener() { public void handleEvent(org.eclipse.swt.widgets.Event e) { browser.setUrl(locationBar.getText()); } }); } if (statusBar) { status = new org.eclipse.swt.widgets.Label(parent, SWT.NONE); progressBar = new org.eclipse.swt.widgets.ProgressBar(parent, SWT.NONE); data = new org.eclipse.swt.layout.FormData(); data.left = new org.eclipse.swt.layout.FormAttachment(0, 5); data.right = new org.eclipse.swt.layout.FormAttachment(progressBar, 0, SWT.DEFAULT); data.bottom = new org.eclipse.swt.layout.FormAttachment(100, -5); status.setLayoutData(data); data = new org.eclipse.swt.layout.FormData(); data.right = new org.eclipse.swt.layout.FormAttachment(100, -5); data.bottom = new org.eclipse.swt.layout.FormAttachment(100, -5); progressBar.setLayoutData(data); browser.addStatusTextListener( new org.eclipse.swt.browser.StatusTextListener() { public void changed(org.eclipse.swt.browser.StatusTextEvent event) { status.setText(event.text); } }); } parent.setLayout(new org.eclipse.swt.layout.FormLayout()); org.eclipse.swt.widgets.Control aboveBrowser = toolBar ? (org.eclipse.swt.widgets.Control) canvas : addressBar ? (org.eclipse.swt.widgets.Control) locationBar : null; data = new org.eclipse.swt.layout.FormData(); data.left = new org.eclipse.swt.layout.FormAttachment(0, 0); data.top = aboveBrowser != null ? new org.eclipse.swt.layout.FormAttachment(aboveBrowser, 5, SWT.DEFAULT) : new org.eclipse.swt.layout.FormAttachment(0, 0); data.right = new org.eclipse.swt.layout.FormAttachment(100, 0); data.bottom = status != null ? new org.eclipse.swt.layout.FormAttachment(status, -5, SWT.DEFAULT) : new org.eclipse.swt.layout.FormAttachment(100, 0); browser.setLayoutData(data); if (statusBar || toolBar) { browser.addProgressListener( new org.eclipse.swt.browser.ProgressListener() { public void changed(org.eclipse.swt.browser.ProgressEvent event) { if (event.total == 0) { return; } int ratio = event.current * 100 / event.total; if (progressBar != null) { progressBar.setSelection(ratio); } busy = event.current != event.total; if (!busy) { index = 0; if (canvas != null) { canvas.redraw(); } } } public void completed(org.eclipse.swt.browser.ProgressEvent event) { if (progressBar != null) { progressBar.setSelection(0); } busy = false; index = 0; if (canvas != null) { itemBack.setEnabled(browser.isBackEnabled()); itemForward.setEnabled(browser.isForwardEnabled()); canvas.redraw(); } } }); } if (addressBar || statusBar || toolBar) { browser.addLocationListener( new org.eclipse.swt.browser.LocationListener() { public void changed(org.eclipse.swt.browser.LocationEvent event) { busy = true; if (event.top && locationBar != null) { locationBar.setText(event.location); } } public void changing(org.eclipse.swt.browser.LocationEvent event) {} }); } if (title) { browser.addTitleListener( new org.eclipse.swt.browser.TitleListener() { public void changed(org.eclipse.swt.browser.TitleEvent event) { shell.setText(event.title + " - " + getResourceString("window.title")); } }); } parent.layout(true); if (owned) { shell.open(); } }