From e127defcfae4d10a132fdeef5c1b48b1c8711411 Mon Sep 17 00:00:00 2001 From: nyu Date: Wed, 11 Mar 2020 14:21:03 +0800 Subject: [PATCH 1/2] Format remove tailing spaces. Change-Id: I9525f70cc728c38e6b435a077b13dc7b2f544503 Signed-off-by: nyu --- .../example/EmbeddedSwingComposite2.java | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/org.eclipse.wb.swing/src/swingintegration/example/EmbeddedSwingComposite2.java b/org.eclipse.wb.swing/src/swingintegration/example/EmbeddedSwingComposite2.java index f693404e6..cd750f4c5 100644 --- a/org.eclipse.wb.swing/src/swingintegration/example/EmbeddedSwingComposite2.java +++ b/org.eclipse.wb.swing/src/swingintegration/example/EmbeddedSwingComposite2.java @@ -2,7 +2,7 @@ * Copyright (c) 2007 SAS Institute. All rights reserved. This program and the accompanying * materials are made available under the terms of the Eclipse Public License v1.0 which accompanies * this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html - * + * * Contributors: SAS Institute - initial API and implementation *******************************************************************************/ package swingintegration.example; @@ -48,7 +48,7 @@ *

* This is an abstract that is normally used by extending it and implementing the * {@link #createSwingComponent()} method. For example, - * + * *

  *        embeddedComposite = new EmbeddedSwingComposite(parent, SWT.NONE) {
  *            protected JComponent createSwingComponent() {
@@ -57,10 +57,10 @@
  *                scrollPane.setViewportView(table);
  *                return scrollPane;
  *            }
- *        }; 
+ *        };
  *        embeddedComposite.populate();
  * 
- * + * *

* The Swing component is created inside a standard Swing containment hierarchy, rooted in a * {@link javax.swing.RootPaneContainer}. The root pane container is placed inside an AWT frame, as @@ -87,7 +87,7 @@ *

  • {@link org.eclipse.swt.widgets.Display#asyncExec(Runnable)} *
  • {@link org.eclipse.swt.widgets.Display#syncExec(Runnable)} * - * + * * Of course, as in single-toolkit environments, long-running tasks should be offloaded from either * UI thread to a background thread. The Eclipse jobs API can be used for this purpose. */ @@ -140,12 +140,12 @@ public void handleEvent(Event event) { *

    * The styles SWT.EMBEDDED and SWT.NO_BACKGROUND will be added to the specified style. Usually, no * other style bits are needed. - * + * * @param parent * a widget which will be the parent of the new instance (cannot be null) * @param style * the style of widget to construct - * + * * @exception IllegalArgumentException *

      *
    • ERROR_NULL_ARGUMENT - if the parent is null
    • @@ -154,7 +154,7 @@ public void handleEvent(Event event) { *
        *
      • ERROR_THREAD_INVALID_ACCESS - if not called from the SWT event thread *
      - * + * * @see Widget#getStyle */ public EmbeddedSwingComposite2(Composite parent, int style) { @@ -183,11 +183,11 @@ public void handleEvent(Event event) { *

      * This method can be called multiple times for a single instance. If an embedded frame exists * from a previous call, it is disposed. - * + * * @exception SWTException *

        - *
      • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
      • - * ERROR_THREAD_INVALID_ACCESS - if not called from the SWT event thread + *
      • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
      • + *
      • ERROR_THREAD_INVALID_ACCESS - if not called from the SWT event thread *
      */ public void populate() { @@ -226,7 +226,7 @@ public void run() { * Implement this method to provide the Swing component that will be shown inside this composite. * The returned component will be added to the Swing content pane. At least one component must be * created by this method; null is not a valid return value. - * + * * @return a non-null Swing component */ protected abstract JComponent createSwingComponent(); @@ -242,7 +242,7 @@ public void run() { * heavyweight (AWT) component in the frame's containment hierarchy; otherwise, event processing * will not work correctly. See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4982522 for * more information. - * + * * @param frame * the frame to which the root pane container is added * @return a non-null Swing component @@ -251,17 +251,17 @@ protected RootPaneContainer addRootPaneContainer(Frame frame) { assert EventQueue.isDispatchThread(); // On AWT event thread assert frame != null; // It is important to set up the proper top level components in the frame: - // 1) For Swing to work properly, Sun documents that there must be an implementor of - // javax.swing.RootPaneContainer at the top of the component hierarchy. - // 2) For proper event handling there must be a heavyweight - // an AWT frame must contain a heavyweight component (see + // 1) For Swing to work properly, Sun documents that there must be an implementor of + // javax.swing.RootPaneContainer at the top of the component hierarchy. + // 2) For proper event handling there must be a heavyweight + // an AWT frame must contain a heavyweight component (see // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4982522) - // 3) The Swing implementation further narrows the options by expecting that the + // 3) The Swing implementation further narrows the options by expecting that the // top of the hierarchy be a JFrame, JDialog, JWindow, or JApplet. See javax.swing.PopupFactory. - // All this drives the choice of JApplet for the top level Swing component. It is the - // only single component that satisfies all the above. This does not imply that + // All this drives the choice of JApplet for the top level Swing component. It is the + // only single component that satisfies all the above. This does not imply that // we have a true applet; in particular, there is no notion of an applet lifecycle in this - // context. + // context. // // We need to intercept call of "getInputContext" because it make native call // and causes dead-lock in SWT. @@ -275,7 +275,7 @@ public InputContext getInputContext() { }; // In JRE 1.4, the JApplet makes itself a focus cycle root. This // interferes with the focus handling installed on the parent frame, so - // change it back to a non-root here. + // change it back to a non-root here. // TODO: consider moving the focus policy from the Frame down to the JApplet applet.setFocusCycleRoot(false); frame.add(applet); @@ -292,7 +292,7 @@ public InputContext getInputContext() { * class will automatically propogate font changes to the embedded Swing components through * Swing's Look and Feel support. However, if additional special processing is necessary, it can * be done inside this method. - * + * * @param newFont * New AWT font */ @@ -302,11 +302,11 @@ protected void updateAwtFont(java.awt.Font newFont) { /** * Returns the embedded AWT frame. The returned frame is the root of the AWT containment hierarchy * for the embedded Swing component. This method can be called from any thread. - * + * * @return the embedded frame */ public Frame getFrame() { - // Intentionally leaving out checkWidget() call. This may need to be called from within user's + // Intentionally leaving out checkWidget() call. This may need to be called from within user's // createSwingComponent() method. Accessing from a non-SWT thread is OK, but we still check // for disposal if (getDisplay() == null || isDisposed()) { @@ -317,15 +317,15 @@ public Frame getFrame() { private void createFrame() { assert Display.getCurrent() != null; // On SWT event thread - // Make sure Awt environment is initialized. + // Make sure Awt environment is initialized. //AwtEnvironment.getInstance(getDisplay()); if (awtContext != null) { final Frame oldFrame = awtContext.getFrame(); // Schedule disposal of old frame on AWT thread so that there are no problems with // already-scheduled operations that have not completed. - // Note: the implementation of Frame.dispose() would schedule the use of the AWT - // thread even if it was not done here, but it uses invokeAndWait() which is - // prone to deadlock (and not necessary for this case). + // Note: the implementation of Frame.dispose() would schedule the use of the AWT + // thread even if it was not done here, but it uses invokeAndWait() which is + // prone to deadlock (and not necessary for this case). EventQueue.invokeLater(new Runnable() { public void run() { oldFrame.dispose(); @@ -338,7 +338,7 @@ public void run() { // Glue the two frameworks together. Do this before anything is added to the frame // so that all necessary listeners are in place. createFocusHandlers(); - // This listener clears garbage during resizing, making it looker much cleaner + // This listener clears garbage during resizing, making it looker much cleaner addControlListener(new CleanResizeListener()); } @@ -358,7 +358,7 @@ private void createFocusHandlers() { private void scheduleComponentCreation() { assert awtContext != null; - // Create AWT/Swing components on the AWT thread. This is + // Create AWT/Swing components on the AWT thread. This is // especially necessary to avoid an AWT leak bug (6411042). final AwtContext currentContext = awtContext; EventQueue.invokeLater(new Runnable() { @@ -417,7 +417,7 @@ public void dispose() { private void dispose_AWT() { // remove listeners getDisplay().removeFilter(SWT.Show, menuListener); - // dispose frame to avoid lock down in EventQueue.invokeAndWait() later + // dispose frame to avoid lock down in EventQueue.invokeAndWait() later if (awtContext != null) { Frame oldFrame = awtContext.getFrame(); oldFrame.dispose(); From 890857e3ed10847bcbc51b4072a1ef225cf3fa6f Mon Sep 17 00:00:00 2001 From: nyu Date: Wed, 11 Mar 2020 14:32:13 +0800 Subject: [PATCH 2/2] Bug 560900 - Border preview function not works (windows 10, jre8). Change-Id: I458cac1a414dc5a9cb992f4b5d2d2730c206e172 Signed-off-by: nyu --- .../example/EmbeddedSwingComposite2.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/org.eclipse.wb.swing/src/swingintegration/example/EmbeddedSwingComposite2.java b/org.eclipse.wb.swing/src/swingintegration/example/EmbeddedSwingComposite2.java index cd750f4c5..ba64a5e7c 100644 --- a/org.eclipse.wb.swing/src/swingintegration/example/EmbeddedSwingComposite2.java +++ b/org.eclipse.wb.swing/src/swingintegration/example/EmbeddedSwingComposite2.java @@ -7,6 +7,7 @@ *******************************************************************************/ package swingintegration.example; +import org.eclipse.wb.internal.core.EnvironmentUtils; import org.eclipse.wb.internal.swing.utils.SwingImageUtils; import org.eclipse.swt.SWT; @@ -432,17 +433,20 @@ private void dispose_AWT() { * It is marked "fixed", but still does not work. */ public static boolean canUseAwt() { - Shell shell = new Shell(); - try { + if (EnvironmentUtils.IS_MAC) { + Shell shell = new Shell(); try { - Frame frame = SWT_AWT.new_Frame(shell); - frame.dispose(); - return true; - } catch (Throwable e) { - return false; + try { + Frame frame = SWT_AWT.new_Frame(shell); + frame.dispose(); + return true; + } catch (Throwable e) { + return false; + } + } finally { + shell.dispose(); } - } finally { - shell.dispose(); } + return true; } }