📄 welcome.java
字号:
package com.ismyway.anyview.win;
import java.util.Calendar;
import java.util.Random;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Graphics;
import com.ismyway.anyview.Anyview;
import com.ismyway.anyview.others.Configure;
import com.ismyway.anyview.others.Settings;
import com.ismyway.fairyui.Component;
import com.ismyway.fairyui.Handset;
import com.ismyway.fairyui.HyperLink;
import com.ismyway.fairyui.MenuItem;
import com.ismyway.fairyui.NewLine;
import com.ismyway.fairyui.Panel;
import com.ismyway.fairyui.PopMenu;
import com.ismyway.fairyui.Row;
import com.ismyway.fairyui.StringItem;
import com.ismyway.fairyui.TextBlock;
import com.ismyway.util.ArrayList;
import com.ismyway.util.RcLoader;
import com.ismyway.util.Res;
import com.ismyway.util.Theme;
public class Welcome extends Panel {
private int timer = 0;
private int shortcutIndex = 0;
MenuItem[] mainmenu;
public static MenuItem miSystemPath = new MenuItem(Res.get("System") + Res.get("Path")); //系统路径
public static MenuItem miEmpty = new MenuItem(Res.get("Empty")); //清空
public static MenuItem miOpen = new MenuItem(Res.get("Open")); //打开
public static MenuItem miClose = new MenuItem(Res.get("Close")); //关闭
public static MenuItem miShare = new MenuItem(Res.get("Share")); //分享
public static MenuItem miEnable = new MenuItem(Res.get("Enable")); //允许
public static MenuItem miDisable = new MenuItem(Res.get("Disable")); //禁止
public static MenuItem miFitScreen = new MenuItem(Res.get("Fit Screen")); //合适屏幕大小
public Welcome() {
String version = Handset.getAppProperty("MIDlet-Version");
version = version == null ? "?.?.?" : version;
setTitle("Anyview " + version);
setCommandListener(this);
initMenu();
initContent();
}
private void changeLanguage() {
miSystemPath = new MenuItem(Res.get("System") + Res.get("Path")); //系统路径
miEmpty = new MenuItem(Res.get("Empty")); //清空
miOpen = new MenuItem(Res.get("Open")); //打开
miClose = new MenuItem(Res.get("Close")); //关闭
miShare = new MenuItem(Res.get("Share")); //分享
miEnable = new MenuItem(Res.get("Enable")); //允许
miDisable = new MenuItem(Res.get("Disable")); //禁止
miFitScreen = new MenuItem(Res.get("Fit Screen")); //合适屏幕大小
initMenu();
}
public void initMenu() {
MenuItem[][] submenus = {
{
new MenuItem(Res.get("Preference")),
new MenuItem(Res.get("Color")),
new MenuItem(Res.get("Reader")),
new MenuItem(Res.get("System")),
},
{
new MenuItem(Res.get("Chinese")),
new MenuItem(Res.get("Chinese_TW")),
new MenuItem(Res.get("English")),
new MenuItem(Res.get("Russian")),
}
};
mainmenu = new MenuItem[] {
new MenuItem(Res.get("History")),
miOpen,
new MenuItem(Res.get("Setup"), submenus[0]),
new MenuItem(Res.get("Language"), submenus[1]),
new MenuItem(Res.get("Search")),
new MenuItem(Res.get("Help")),
new MenuItem(Res.get("About")),
new MenuItem(Res.get("Exit"))
};
PopMenu menu = new PopMenu(this, mainmenu);
addCommand(new Command(Res.get("Menu"), Command.OK, 1), menu);
}
public void afterActive() {
}
public void reActive() {
super.reActive();
initContent();
validate();
}
private void initContent() {
shortcutIndex = 0;
int counter = 0;
clear();
//是否访问过文件系统
if ("".equals(Configure.lastOpenDir) || "/".equals(Configure.lastOpenDir)) {
counter++;
Row row = new Row();
row.add(new TextBlock(Res.get("First"), true));
row.add(new HyperLink(Res.get("Reader") + Res.get("Help"), Res.get("Help")));
row.add(new NewLine(1, new Integer(Theme.ComponentLight), Graphics.DOTTED));
add(row);
}
//阅读历史
//更换主题
if (true || !Anyview.hasPointerEvents) {
counter++;
Row row = new Row();
row.add(new TextBlock(Res.get("How Are You"), true));
row.add(new HyperLink(Res.get("Change Theme"), Res.get("Change Theme")));
add(row);
}
if (counter < 2) { //没什么可显示的时候,随便显示点什么
RcLoader rc = new RcLoader("/dictum.rc");
String t = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int index = new Random(System.currentTimeMillis()).nextInt(t.length());
String key = "" + t.charAt(index);
String value = rc.get(key);
while(key.equals(value) && counter++ < 10) {
index = new Random(System.currentTimeMillis()).nextInt(t.length());
value = rc.get(key);
}
if (!key.equals(value)) {
Row row = new Row();
row.add(new NewLine(5));
row.add(new NewLine(1, new Integer(Theme.ComponentLight), Graphics.DOTTED));
row.add(new TextBlock(value));
add(row);
}
rc.clear();
rc = null;
}
}
private String getFilename(String fullpath) {
int index = fullpath.lastIndexOf('/');
if (index == -1) {
return fullpath;
}
return fullpath.substring(index + 1);
}
public void commandAction(Command cmd, Component c) {
String str = cmd.getLabel();
if (str.equals(Res.get("Change Theme"))) {
Configure.themeName = Theme.loadRandTheme();
} else if (str.equals("")) {
} else if (str.equals(Res.get("Help"))) {
mainCanvas.showPopup(new Readme(new ArrayList(), null, (byte) 0), Settings.ANIMATE_DOWN);
} else if (str.equals(Res.get("More"))) {
}
if (c instanceof StringItem) {
}
}
public void callback(Component component, Command cmd, Object[] parameters) {
String func = cmd.getLabel();
System.out.println(func);
if (func.equals(Res.get("Exit"))) {
mainCanvas.destroy();
Anyview.exit();
} else if (func.equals(Res.get("System"))) {
mainCanvas.showPopup(new SysSet(), Settings.ANIMATE_LEFT);
} else if (func.equals(Res.get("Open"))) {
mainCanvas.showPopup(new FileExplorer(null, null), Settings.ANIMATE_UP);
} else if (func.equals(Res.get("About"))) {
mainCanvas.showPopup(new About(), Settings.ANIMATE_RIGHT);
} else if (func.equals(Res.get("Reader"))) {
mainCanvas.showPopup(new ReaderSetting(), Settings.ANIMATE_RIGHT);
} else if (func.equals(Res.get("History"))) {
} else if (func.equals(Res.get("Help"))) {
mainCanvas.showPopup(new Readme(new ArrayList(), null, (byte) 0), Settings.ANIMATE_DOWN);
} else if (func.equals(Res.get("Color"))) {
mainCanvas.showPopup(new Color(), Settings.ANIMATE_DOWN);
} else if (func.equals(Res.get("Preference"))) {
mainCanvas.showPopup(new Profile(), Settings.ANIMATE_RIGHT);
} else if (func.equals(Res.get("Search"))) {
mainCanvas.showPopup(new SearchByNet(), Settings.ANIMATE_DOWN);
} else if (func.equals(Res.get("Chinese"))) {
Configure.language = "zh.rc";
Res.reload();
changeLanguage();
reActive();
} else if (func.equals(Res.get("English"))) {
Configure.language = "en.rc";
Res.reload();
changeLanguage();
reActive();
} else if (func.equals(Res.get("Chinese_TW"))) {
Configure.language = "tw.rc";
Res.reload();
changeLanguage();
reActive();
} else if (func.equals(Res.get("Russian"))) {
Configure.language = "ru.rc";
Res.reload();
changeLanguage();
reActive();
}
}
public boolean isAnimated() {
super.isAnimated();
return true;
}
public boolean clock() {
boolean repaint = super.clock();
if (repaint) {
return repaint;
}
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR);
int min = calendar.get(Calendar.MINUTE);
int sec = calendar.get(Calendar.SECOND);
int pm = calendar.get(Calendar.AM_PM);
hour = (pm == 1) ? hour + 12 : hour;
StringBuffer sb = new StringBuffer();
sb.append((hour < 10) ? "0" : "");
sb.append(hour).append(":");
sb.append((min < 10) ? "0" : "").append(min);
sb.append(":").append((sec < 10) ? "0" : "").append(sec);
String str = null;
if (rightCmd != null) {
if (timer++ < 50) {
str = rightCmd.getLabel();
} else {
str = sb.toString();
}
} else {
str = sb.toString();
}
if (rightString.equals(sb.toString())) {
return false;
}
rightString = str;
if (timer > 100) {
timer = 0;
}
return true;
}
public int getNextShortcut() {
if (shortcutIndex > shortcutList.length) {
return Settings.VKEY_RELEASE;
}
return shortcutList[shortcutIndex++];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -