From 59fb5931076a3a22b81b5ac33290523fc941fe2b Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sun, 10 Jul 2022 12:10:24 +0200 Subject: [PATCH] Make MiniDesktop RAP compatible. --- .../org.argeo.swt.minidesktop/.classpath | 0 .../org.argeo.swt.minidesktop/.gitignore | 0 .../org.argeo.swt.minidesktop/.project | 0 .../META-INF/.gitignore | 0 .../org.argeo.swt.minidesktop/bnd.bnd | 0 .../build.properties | 0 .../org/argeo/minidesktop/MiniBrowser.java | 10 ++++--- .../argeo/minidesktop/MiniDesktopImages.java | 0 .../argeo/minidesktop/MiniDesktopManager.java | 18 +++++------ .../org/argeo/minidesktop/MiniExplorer.java | 3 +- .../org/argeo/minidesktop/MiniHomePart.java | 0 .../argeo/minidesktop/MiniImageViewer.java | 0 .../org/argeo/minidesktop/MiniTerminal.java | 12 ++++---- .../org/argeo/minidesktop/MiniTextEditor.java | 0 .../argeo/minidesktop/cheatsheet_obj@2x.png | Bin .../org/argeo/minidesktop/console_view@2x.png | Bin .../src/org/argeo/minidesktop/delete@2x.png | Bin .../argeo/minidesktop/external_browser@2x.png | Bin .../src/org/argeo/minidesktop/file_obj@2x.png | Bin .../src/org/argeo/minidesktop/fldr_obj@2x.png | Bin .../src/org/argeo/minidesktop/nav_home@2x.png | Bin .../org/argeo/cms/swt/rap/cli/RwtRunner.java | 28 ++++++++++-------- 22 files changed, 37 insertions(+), 34 deletions(-) rename {rcp => swt}/org.argeo.swt.minidesktop/.classpath (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/.gitignore (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/.project (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/META-INF/.gitignore (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/bnd.bnd (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/build.properties (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniBrowser.java (96%) rename {rcp => swt}/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopImages.java (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopManager.java (96%) rename {rcp => swt}/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniExplorer.java (98%) rename {rcp => swt}/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniHomePart.java (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniImageViewer.java (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniTerminal.java (97%) rename {rcp => swt}/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniTextEditor.java (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/cheatsheet_obj@2x.png (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/console_view@2x.png (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/delete@2x.png (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/external_browser@2x.png (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/file_obj@2x.png (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/fldr_obj@2x.png (100%) rename {rcp => swt}/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/nav_home@2x.png (100%) diff --git a/rcp/org.argeo.swt.minidesktop/.classpath b/swt/org.argeo.swt.minidesktop/.classpath similarity index 100% rename from rcp/org.argeo.swt.minidesktop/.classpath rename to swt/org.argeo.swt.minidesktop/.classpath diff --git a/rcp/org.argeo.swt.minidesktop/.gitignore b/swt/org.argeo.swt.minidesktop/.gitignore similarity index 100% rename from rcp/org.argeo.swt.minidesktop/.gitignore rename to swt/org.argeo.swt.minidesktop/.gitignore diff --git a/rcp/org.argeo.swt.minidesktop/.project b/swt/org.argeo.swt.minidesktop/.project similarity index 100% rename from rcp/org.argeo.swt.minidesktop/.project rename to swt/org.argeo.swt.minidesktop/.project diff --git a/rcp/org.argeo.swt.minidesktop/META-INF/.gitignore b/swt/org.argeo.swt.minidesktop/META-INF/.gitignore similarity index 100% rename from rcp/org.argeo.swt.minidesktop/META-INF/.gitignore rename to swt/org.argeo.swt.minidesktop/META-INF/.gitignore diff --git a/rcp/org.argeo.swt.minidesktop/bnd.bnd b/swt/org.argeo.swt.minidesktop/bnd.bnd similarity index 100% rename from rcp/org.argeo.swt.minidesktop/bnd.bnd rename to swt/org.argeo.swt.minidesktop/bnd.bnd diff --git a/rcp/org.argeo.swt.minidesktop/build.properties b/swt/org.argeo.swt.minidesktop/build.properties similarity index 100% rename from rcp/org.argeo.swt.minidesktop/build.properties rename to swt/org.argeo.swt.minidesktop/build.properties diff --git a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniBrowser.java b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniBrowser.java similarity index 96% rename from rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniBrowser.java rename to swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniBrowser.java index 406382bce..d4da349ce 100644 --- a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniBrowser.java +++ b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniBrowser.java @@ -84,10 +84,12 @@ public class MiniBrowser { } }); - browser.addTitleListener(e -> titleChanged(e.title)); - browser.addOpenWindowListener((e) -> { - e.browser = openNewBrowserWindow(); - }); + + // FIXME make it portable +// browser.addTitleListener(e -> titleChanged(e.title)); +// browser.addOpenWindowListener((e) -> { +// e.browser = openNewBrowserWindow(); +// }); return browser; } diff --git a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopImages.java b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopImages.java similarity index 100% rename from rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopImages.java rename to swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopImages.java diff --git a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopManager.java b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopManager.java similarity index 96% rename from rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopManager.java rename to swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopManager.java index e0f483d49..6af59d9d6 100644 --- a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopManager.java +++ b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopManager.java @@ -14,12 +14,10 @@ import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.program.Program; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; @@ -285,16 +283,16 @@ public class MiniDesktopManager { } protected Image getIconForExt(String ext) { - Program program = Program.findProgram(ext); - if (program == null) +// Program program = Program.findProgram(ext); +// if (program == null) return display.getSystemImage(SWT.ICON_INFORMATION); - ImageData iconData = program.getImageData(); - if (iconData == null) { - return display.getSystemImage(SWT.ICON_INFORMATION); - } else { - return new Image(display, iconData); - } +// ImageData iconData = program.getImageData(); +// if (iconData == null) { +// return display.getSystemImage(SWT.ICON_INFORMATION); +// } else { +// return new Image(display, iconData); +// } } diff --git a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniExplorer.java b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniExplorer.java similarity index 98% rename from rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniExplorer.java rename to swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniExplorer.java index 1395c02cf..9a967a2d4 100644 --- a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniExplorer.java +++ b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniExplorer.java @@ -15,7 +15,6 @@ import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.program.Program; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; @@ -83,7 +82,7 @@ public class MiniExplorer { if (Files.isDirectory(path)) { setPath(path); } else { - Program.launch(path.toString()); + //Program.launch(path.toString()); } } }); diff --git a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniHomePart.java b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniHomePart.java similarity index 100% rename from rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniHomePart.java rename to swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniHomePart.java diff --git a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniImageViewer.java b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniImageViewer.java similarity index 100% rename from rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniImageViewer.java rename to swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniImageViewer.java diff --git a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniTerminal.java b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniTerminal.java similarity index 97% rename from rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniTerminal.java rename to swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniTerminal.java index 196ad0c57..cd1a9f224 100644 --- a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniTerminal.java +++ b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniTerminal.java @@ -27,7 +27,6 @@ import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Canvas; -import org.eclipse.swt.widgets.Caret; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; @@ -35,7 +34,7 @@ import org.eclipse.swt.widgets.Shell; public class MiniTerminal implements KeyListener, PaintListener { private Canvas area; - private Caret caret; +// private Caret caret; private StringBuffer buf = new StringBuffer(""); private StringBuffer userInput = new StringBuffer(""); @@ -76,8 +75,8 @@ public class MiniTerminal implements KeyListener, PaintListener { parent.setLayout(new GridLayout()); area = new Canvas(parent, SWT.NONE); area.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - caret = new Caret(area, SWT.NONE); - area.setCaret(caret); +// caret = new Caret(area, SWT.NONE); +// area.setCaret(caret); area.addKeyListener(this); area.addPaintListener(this); @@ -102,8 +101,9 @@ public class MiniTerminal implements KeyListener, PaintListener { @Override public void keyReleased(KeyEvent e) { - if (e.keyLocation != 0) - return;// weird characters +// if (e.keyLocation != 0) +// return;// weird characters + // System.out.println(e.character); if (e.keyCode == 0xd) {// return markLogicalLine(); diff --git a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniTextEditor.java b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniTextEditor.java similarity index 100% rename from rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniTextEditor.java rename to swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniTextEditor.java diff --git a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/cheatsheet_obj@2x.png b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/cheatsheet_obj@2x.png similarity index 100% rename from rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/cheatsheet_obj@2x.png rename to swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/cheatsheet_obj@2x.png diff --git a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/console_view@2x.png b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/console_view@2x.png similarity index 100% rename from rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/console_view@2x.png rename to swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/console_view@2x.png diff --git a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/delete@2x.png b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/delete@2x.png similarity index 100% rename from rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/delete@2x.png rename to swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/delete@2x.png diff --git a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/external_browser@2x.png b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/external_browser@2x.png similarity index 100% rename from rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/external_browser@2x.png rename to swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/external_browser@2x.png diff --git a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/file_obj@2x.png b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/file_obj@2x.png similarity index 100% rename from rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/file_obj@2x.png rename to swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/file_obj@2x.png diff --git a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/fldr_obj@2x.png b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/fldr_obj@2x.png similarity index 100% rename from rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/fldr_obj@2x.png rename to swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/fldr_obj@2x.png diff --git a/rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/nav_home@2x.png b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/nav_home@2x.png similarity index 100% rename from rcp/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/nav_home@2x.png rename to swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/nav_home@2x.png diff --git a/swt/rap/org.argeo.cms.swt.rap.cli/src/org/argeo/cms/swt/rap/cli/RwtRunner.java b/swt/rap/org.argeo.cms.swt.rap.cli/src/org/argeo/cms/swt/rap/cli/RwtRunner.java index 6b678a83c..b03939f81 100644 --- a/swt/rap/org.argeo.cms.swt.rap.cli/src/org/argeo/cms/swt/rap/cli/RwtRunner.java +++ b/swt/rap/org.argeo.cms.swt.rap.cli/src/org/argeo/cms/swt/rap/cli/RwtRunner.java @@ -9,6 +9,7 @@ import java.util.Objects; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; +import org.argeo.minidesktop.MiniDesktopManager; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; @@ -17,9 +18,10 @@ import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.eclipse.jetty.util.resource.Resource; import org.eclipse.jetty.util.thread.QueuedThreadPool; -import org.eclipse.rap.rwt.application.AbstractEntryPoint; import org.eclipse.rap.rwt.application.ApplicationConfiguration; import org.eclipse.rap.rwt.application.ApplicationRunner; +import org.eclipse.rap.rwt.application.EntryPoint; +import org.eclipse.rap.rwt.application.Application.OperationMode; import org.eclipse.rap.rwt.engine.RWTServlet; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; @@ -52,7 +54,7 @@ public class RwtRunner { context.setContextPath("/"); server.setHandler(context); - String entryPoint = "data"; + String entryPoint = "app"; // rwt-resources requires a file system try { @@ -119,16 +121,18 @@ public class RwtRunner { RwtRunner rwtRunner = new RwtRunner(); String entryPoint = "app"; - ApplicationConfiguration applicationConfiguration = (application) -> application.addEntryPoint("/" + entryPoint, - () -> new AbstractEntryPoint() { - private static final long serialVersionUID = 5678385921969090733L; - - @Override - protected void createContents(Composite parent) { - Label label = new Label(parent, 0); - label.setText("Hello world!"); - } - }, null); + ApplicationConfiguration applicationConfiguration = (application) -> { + application.setOperationMode(OperationMode.SWT_COMPATIBILITY); + application.addEntryPoint("/" + entryPoint, () -> new EntryPoint() { + @Override + public int createUI() { + MiniDesktopManager miniDesktopManager = new MiniDesktopManager(false, false); + miniDesktopManager.init(); + miniDesktopManager.run(); + return 0; + } + }, null); + }; rwtRunner.setApplicationConfiguration(applicationConfiguration); rwtRunner.init(); -- 2.30.2