package jexer.demos;
import java.io.*;
+import java.util.*;
import jexer.*;
import jexer.event.*;
/**
* The demo application itself.
*/
-class DemoApplication extends TApplication {
+public class DemoApplication extends TApplication {
/**
* Add all the widgets of the demo.
item = demoMenu.addItem(2002, "&Normal");
TSubMenu subMenu = demoMenu.addSubMenu("Sub-&Menu");
item = demoMenu.addItem(2010, "N&ormal A&&D");
+ item = demoMenu.addItem(2050, "Co&lors...");
item = subMenu.addItem(2000, "&Checkable (sub)");
item.setCheckable(true);
addWindowMenu();
}
-
+
/**
* Public constructor.
*
super(input, output);
addAllWidgets();
}
-
+
+ /**
+ * Handle menu events.
+ *
+ * @param menu menu event
+ * @return if true, the event was processed and should not be passed onto
+ * a window
+ */
+ @Override
+ public boolean onMenu(final TMenuEvent menu) {
+
+ if (menu.getId() == 2050) {
+ new TEditColorThemeWindow(this);
+ return true;
+ }
+
+ if (menu.getId() == TMenu.MID_OPEN_FILE) {
+ try {
+ String filename = fileOpenBox(".");
+ if (filename != null) {
+ try {
+ File file = new File(filename);
+ StringBuilder fileContents = new StringBuilder();
+ Scanner scanner = new Scanner(file);
+ String EOL = System.getProperty("line.separator");
+
+ try {
+ while (scanner.hasNextLine()) {
+ fileContents.append(scanner.nextLine() + EOL);
+ }
+ new DemoTextWindow(this, filename,
+ fileContents.toString());
+ } finally {
+ scanner.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return true;
+ }
+ return super.onMenu(menu);
+ }
+
/**
* Public constructor.
*
* @param backendType one of the TApplication.BackendType values
* @throws Exception if TApplication can't instantiate the Backend.
*/
- public DemoApplication(BackendType backendType) throws Exception {
+ public DemoApplication(final BackendType backendType) throws Exception {
super(backendType);
addAllWidgets();
}