]> git.argeo.org Git - gpl/argeo-slc.git/blob - suite/org.argeo.slc.tool/src/org/argeo/slc/tool/swt/MiniDesktopCli.java
Native SSH agent integration working
[gpl/argeo-slc.git] / suite / org.argeo.slc.tool / src / org / argeo / slc / tool / swt / MiniDesktopCli.java
1 package org.argeo.slc.tool.swt;
2
3 import java.util.List;
4
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.cms.cli.CommandsCli;
9 import org.argeo.cms.cli.DescribedCommand;
10 import org.argeo.minidesktop.MiniDesktopManager;
11
12 public class MiniDesktopCli extends CommandsCli {
13
14 public MiniDesktopCli(String commandName) {
15 super(commandName);
16 addCommand("launch", new Launch());
17 }
18
19 @Override
20 public String getDescription() {
21 return "A minimalistic desktop manager based on Java and Eclipse SWT.";
22 }
23
24 public static void main(String[] args) {
25 mainImpl(new MiniDesktopCli("minidesktop"), args);
26 }
27
28 static class Launch implements DescribedCommand<String> {
29 @Override
30 public Options getOptions() {
31 Options options = new Options();
32 options.addOption(Option.builder().longOpt("fullscreen")
33 .desc("take control of the whole screen (default is to run in a window)").build());
34 options.addOption(Option.builder().longOpt("stacking")
35 .desc("open apps as tabs (default is to create new windows)").build());
36 return options;
37 }
38
39 @Override
40 public String apply(List<String> args) {
41 CommandLine cl = toCommandLine(args);
42 boolean fullscreen = cl.hasOption("fullscreen");
43 boolean stacking = cl.hasOption("stacking");
44
45 MiniDesktopManager desktopManager = new MiniDesktopManager(fullscreen, stacking);
46 desktopManager.init();
47 desktopManager.run();
48 desktopManager.dispose();
49 return null;
50 }
51
52 @Override
53 public String getDescription() {
54 return "Launch a minidesktop manager.";
55 }
56
57 }
58 }