1 package org
.argeo
.tool
.desktop
;
5 import org
.apache
.commons
.cli
.CommandLine
;
6 import org
.apache
.commons
.cli
.Option
;
7 import org
.apache
.commons
.cli
.Options
;
8 import org
.argeo
.api
.cli
.CommandsCli
;
9 import org
.argeo
.api
.cli
.DescribedCommand
;
10 import org
.argeo
.minidesktop
.MiniBrowser
;
11 import org
.argeo
.minidesktop
.MiniDesktopManager
;
12 import org
.argeo
.minidesktop
.MiniDesktopSpecific
;
13 import org
.eclipse
.swt
.browser
.Browser
;
15 public class MiniDesktopCli
extends CommandsCli
{
17 public MiniDesktopCli(String commandName
) {
19 addCommand("launch", new Launch());
23 public String
getDescription() {
24 return "A minimalistic desktop manager based on Java and Eclipse SWT.";
27 public static void main(String
[] args
) {
28 mainImpl(new MiniDesktopCli("minidesktop"), args
);
31 static class Launch
implements DescribedCommand
<String
> {
33 public Options
getOptions() {
34 Options options
= new Options();
35 options
.addOption(Option
.builder().longOpt("fullscreen")
36 .desc("take control of the whole screen (default is to run in a window)").build());
37 options
.addOption(Option
.builder().longOpt("stacking")
38 .desc("open apps as tabs (default is to create new windows)").build());
43 public String
apply(List
<String
> args
) {
44 CommandLine cl
= toCommandLine(args
);
45 boolean fullscreen
= cl
.hasOption("fullscreen");
46 boolean stacking
= cl
.hasOption("stacking");
48 MiniDesktopSpecific
.setMiniDesktopSpecific(new MiniDesktopSpecific() {
50 protected void addBrowserTitleListener(MiniBrowser miniBrowser
, Browser browser
) {
51 browser
.addTitleListener(e
-> miniBrowser
.titleChanged(e
.title
));
55 protected void addBrowserOpenWindowListener(MiniBrowser miniBrowser
, Browser browser
) {
56 browser
.addOpenWindowListener((e
) -> {
57 e
.browser
= miniBrowser
.openNewBrowserWindow();
63 MiniDesktopManager desktopManager
= new MiniDesktopManager(fullscreen
, stacking
);
64 desktopManager
.init();
66 desktopManager
.dispose();
71 public String
getDescription() {
72 return "Launch a minidesktop manager.";