📄 messageboxshell.java
字号:
{
this$0 = MessageBoxShell.this;
shell = shell1;
lblCloseIn = label;
Object();
wasOver = true;
lEnterOn = 0L;
}
});
}
Button checkRemember = null;
if (rememberID != null)
{
checkRemember = new Button(shell, 32);
checkRemember.setText(rememberText);
checkRemember.setSelection(rememberByDefault);
checkRemember.addDisposeListener(new DisposeListener() {
final int val$result[];
final MessageBoxShell this$0;
public void widgetDisposed(DisposeEvent e)
{
Button checkRemember = (Button)e.widget;
isRemembered = checkRemember != null && checkRemember.getSelection();
if (rememberID != null && isRemembered && (rememberOnlyIfButton == -1 || rememberOnlyIfButton == result[0]))
RememberedDecisionsManager.setRemembered(rememberID, result[0]);
}
{
this$0 = MessageBoxShell.this;
result = ai;
Object();
}
});
}
if (buttons.length > 0)
{
Label labelSeparator = new Label(shell, 258);
labelSeparator.setLayoutData(new GridData(768));
Composite cButtons = new Composite(shell, 0);
FormLayout layout = new FormLayout();
cButtons.setLayout(layout);
GridData gridData = new GridData(128);
cButtons.setLayoutData(gridData);
Control lastButton = null;
Listener buttonListener = new Listener() {
final int val$result[];
final Shell val$shell;
final MessageBoxShell this$0;
public void handleEvent(Event event)
{
result[0] = ((Integer)event.widget.getData()).intValue();
shell.dispose();
}
{
this$0 = MessageBoxShell.this;
result = ai;
shell = shell1;
Object();
}
};
int buttonWidth = 0;
Button swtButtons[] = new Button[buttons.length];
for (int i = 0; i < buttons.length; i++)
{
Button button = new Button(cButtons, 8);
swtButtons[i] = button;
button.setData(new Integer(i));
button.setText(buttons[i]);
button.addListener(13, buttonListener);
FormData formData = new FormData();
if (lastButton != null)
formData.left = new FormAttachment(lastButton, 5);
button.setLayoutData(formData);
Point size = button.computeSize(-1, -1);
if (size.x > buttonWidth)
buttonWidth = size.x;
if (i == defaultOption)
{
button.setFocus();
shell.setDefaultButton(button);
}
lastButton = button;
}
if (buttonWidth > 0)
{
if (buttonWidth < 70)
buttonWidth = 70;
for (int i = 0; i < buttons.length; i++)
{
Point size = swtButtons[i].computeSize(buttonWidth, -1);
swtButtons[i].setSize(size);
FormData formData = (FormData)swtButtons[i].getLayoutData();
formData.width = buttonWidth;
}
}
}
shell.addTraverseListener(new TraverseListener() {
final Shell val$shell;
final MessageBoxShell this$0;
public void keyTraversed(TraverseEvent event)
{
if (event.detail == 2)
shell.dispose();
}
{
this$0 = MessageBoxShell.this;
shell = shell1;
Object();
}
});
Listener filterListener = new Listener() {
final MessageBoxShell this$0;
public void handleEvent(Event event)
{
if (event.detail == 64)
{
event.detail = 16;
event.doit = true;
} else
if (event.detail == 32)
{
event.detail = 8;
event.doit = true;
}
}
{
this$0 = MessageBoxShell.this;
Object();
}
};
display.addFilter(31, filterListener);
if (mouseAdapter != null)
addMouseTrackListener(shell, mouseAdapter);
shell.pack();
Point size = shell.getSize();
if (size.x < min_size_x)
{
size.x = min_size_x;
shell.setSize(size);
} else
if (size.x > max_size_x)
{
size = shell.computeSize(max_size_x, -1);
shell.setSize(size);
}
if (size.y < min_size_y)
{
size.y = min_size_y;
shell.setSize(size);
}
Utils.centerWindowRelativeTo(shell, parent);
for (int i = 0; i < listeners.length; i++)
listeners[i].skinAfterComponents(shell, this, relatedObjects);
shell.open();
do
{
if (shell.isDisposed())
break;
if (!display.readAndDispatch())
display.sleep();
} while (true);
if (display != null && !display.isDisposed())
display.removeFilter(31, filterListener);
return result[0];
}
private void addMouseTrackListener(Composite parent, MouseTrackListener listener)
{
if (parent == null || listener == null || parent.isDisposed())
return;
parent.addMouseTrackListener(listener);
Control children[] = parent.getChildren();
for (int i = 0; i < children.length; i++)
{
Control control = children[i];
if (control instanceof Composite)
addMouseTrackListener((Composite)control, listener);
else
control.addMouseTrackListener(listener);
}
}
private Canvas createLinkLabel(final Composite shell, final String text)
{
final Canvas canvas = new Canvas(0, text) {
final String val$text;
final MessageBoxShell this$0;
public Point computeSize(int wHint, int hHint, boolean changed)
{
Rectangle area = new Rectangle(0, 0, wHint >= 0 ? wHint : max_size_x, 5000);
GC gc = new GC(this);
GCStringPrinter sp = new GCStringPrinter(gc, text, area, true, false, 192);
sp.calculateMetrics();
gc.dispose();
Point size = sp.getCalculatedSize();
return size;
}
{
this$0 = MessageBoxShell.this;
text = s;
Canvas(x0, x1);
}
};
Listener l = new Listener() {
GCStringPrinter sp;
final Canvas val$canvas;
final Composite val$shell;
final String val$text;
final MessageBoxShell this$0;
public void handleEvent(Event e)
{
if (!handleHTML)
{
if (e.type == 9)
{
Rectangle area = canvas.getClientArea();
e.gc.setForeground(shell.getForeground());
GCStringPrinter.printString(e.gc, text, area, true, false, 192);
}
return;
}
if (e.type == 9)
{
Rectangle area = canvas.getClientArea();
sp = new GCStringPrinter(e.gc, text, area, true, false, 192);
sp.setUrlColor(ColorCache.getColor(e.gc.getDevice(), "#0000ff"));
if (urlColor != null)
sp.setUrlColor(urlColor);
e.gc.setForeground(shell.getForeground());
sp.printString();
} else
if (e.type == 5)
{
if (sp != null)
{
GCStringPrinter.URLInfo hitUrl = sp.getHitUrl(e.x, e.y);
if (hitUrl != null)
{
canvas.setCursor(canvas.getDisplay().getSystemCursor(21));
canvas.setToolTipText(hitUrl.url);
} else
{
canvas.setCursor(canvas.getDisplay().getSystemCursor(0));
canvas.setToolTipText(null);
}
}
} else
if (e.type == 4 && sp != null)
{
GCStringPrinter.URLInfo hitUrl = sp.getHitUrl(e.x, e.y);
if (hitUrl != null && !hitUrl.url.startsWith(":"))
Utils.launch(hitUrl.url);
}
}
{
this$0 = MessageBoxShell.this;
canvas = canvas1;
shell = composite;
text = s;
Object();
}
};
canvas.addListener(9, l);
if (handleHTML)
{
canvas.addListener(5, l);
canvas.addListener(4, l);
}
ClipboardCopy.addCopyToClipMenu(canvas, new org.gudy.azureus2.ui.swt.mainwindow.ClipboardCopy.copyToClipProvider() {
final String val$text;
final MessageBoxShell this$0;
public String getText()
{
return text;
}
{
this$0 = MessageBoxShell.this;
text = s;
Object();
}
});
return canvas;
}
public String getHtml()
{
return html;
}
public void setHtml(String html)
{
this.html = html;
}
public void setUrl(String url)
{
this.url = url;
}
public void setSize(int width, int height)
{
min_size_x = width;
max_size_x = width;
min_size_y = height;
}
public String getRememberID()
{
return rememberID;
}
public void setRememberID(String rememberID, boolean rememberByDefault)
{
this.rememberID = rememberID;
this.rememberByDefault = rememberByDefault;
}
public String getRememberText()
{
return rememberText;
}
public void setRememberText(String rememberText)
{
this.rememberText = rememberText;
}
public int getAutoCloseInMS()
{
return autoCloseInMS;
}
public void setAutoCloseInMS(int autoCloseInMS)
{
this.autoCloseInMS = autoCloseInMS;
}
public void setSquish(boolean b)
{
squish = b;
}
public boolean isAutoClosed()
{
return autoClosed;
}
public void setRelatedObject(Object relatedObject)
{
relatedObjects = (new Object[] {
relatedObject
});
}
public void setRelatedObjects(Object relatedObjects[])
{
this.relatedObjects = relatedObjects;
}
public Object[] getRelatedObjects()
{
return relatedObjects;
}
public Object getLeftImage()
{
return imgLeft != iconImage ? imgLeft : null;
}
public void setLeftImage(Image imgLeft)
{
this.imgLeft = imgLeft;
}
public void setLeftImage(final int icon)
{
Utils.execSWTThread(new AERunnable() {
final int val$icon;
final MessageBoxShell this$0;
public void runSupport()
{
setLeftImage(Display.getDefault().getSystemImage(icon));
iconImage = Display.getDefault().getSystemImage(icon);
}
{
this$0 = MessageBoxShell.this;
icon = i;
AERunnable();
}
});
}
public void setIconResource(String resource)
{
iconImageID = null;
if (resource.equals("info"))
iconImage = Display.getDefault().getSystemImage(2);
else
if (resource.equals("warning"))
iconImage = Display.getDefault().getSystemImage(8);
else
if (resource.equals("error"))
{
iconImage = Display.getDefault().getSystemImage(1);
} else
{
iconImage = ImageLoader.getInstance().getImage(resource);
iconImageID = resource;
}
setLeftImage(iconImage);
}
public static void main(String args[])
{
Display display = Display.getDefault();
Shell shell = new Shell(display, 1264);
shell.open();
MessageBoxShell messageBoxShell = new MessageBoxShell(shell, "Title", "Test\nTHis is a very long line that tests whether the box gets really wide which is something we don't want.\nA <A HREF=\"Link\">link</A> for <A HREF=\"http://moo.com\">you</a>", new String[] {
"Okay", "Cancyyyyyy", "Maybe"
}, 1, "test2", MessageText.getString("MessageBoxWindow.nomoreprompting"), false, 15000);
messageBoxShell.setHtml("<b>Moo</b> goes the cow<p><hr>");
System.out.println(messageBoxShell.open());
}
public int getRememberOnlyIfButton()
{
return rememberOnlyIfButton;
}
public void setRememberOnlyIfButton(int rememberOnlyIfButton)
{
this.rememberOnlyIfButton = rememberOnlyIfButton;
}
public Color getUrlColor()
{
return urlColor;
}
public void setBrowserFollowLinks(boolean follow)
{
browser_follow_links = follow;
}
public void setUrlColor(Color colorURL)
{
urlColor = colorURL;
}
public void setHandleHTML(boolean handleHTML)
{
this.handleHTML = handleHTML;
}
public boolean isRemembered()
{
return isRemembered;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -