📄 profileset.java
字号:
package com.ismyway.anyview.win;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.TextField;
import com.ismyway.anyview.others.Configure;
import com.ismyway.fairyui.Component;
import com.ismyway.fairyui.InputBlock;
import com.ismyway.fairyui.ListBox;
import com.ismyway.fairyui.ListElement;
import com.ismyway.fairyui.NewLine;
import com.ismyway.fairyui.Panel;
import com.ismyway.fairyui.Row;
import com.ismyway.fairyui.TextBlock;
import com.ismyway.fairyui.ValueChangeListener;
import com.ismyway.util.Res;
import com.ismyway.util.Theme;
public class ProfileSet extends Panel implements ValueChangeListener {
private int oldProfileIndex = 0;
InputBlock configureName = new InputBlock();
//ListBox colorStyle = new ListBox(true);
InputBlock lineSpace = new InputBlock(10, "" + Configure.linePadding, TextField.NUMERIC);
InputBlock slipMenu = new InputBlock(10, "" + Configure.slipDistance, TextField.NUMERIC);
InputBlock sensitivity = new InputBlock(10, "" + Configure.delayTime, TextField.NUMERIC);
ListBox interFont = new ListBox(true);
ListBox complexTheme = new ListBox(true);
ListBox theme = new ListBox(true);
ListBox animate = new ListBox(true);
InputBlock pixelDelay = new InputBlock(10, "" + Configure.pixelScrollDelay, TextField.NUMERIC);
InputBlock lineDelay = new InputBlock(10, "" + Configure.lineScrollDelay, TextField.NUMERIC);
InputBlock pageDelay = new InputBlock(10, "" + Configure.pageScrollDelay, TextField.NUMERIC);
ListBox reserveLineWhenTurnPage = new ListBox(true);
ListBox underline = new ListBox(true);
ListBox listRecycle = new ListBox(true);
InputBlock fontColor1 = new InputBlock();
InputBlock fontColor2 = new InputBlock();
InputBlock backgroundColor = new InputBlock();
InputBlock underlineColor = new InputBlock();
//ListBox backgroundImage = new ListBox(true);
ListBox colorShade = new ListBox(true);
//InputBlock alpha = new InputBlock();
public ProfileSet(int profileIndex) {
this.oldProfileIndex = Configure.configureIndex;
Configure.loadProfile(profileIndex);
String[] names = Configure.getConfigureNames();
configureName.setText(names[profileIndex]);
setTitle(Res.get("Profile") + " - " + names[profileIndex]);
//当前配置的名称
Row row = new Row();
row.add(new TextBlock(Res.get("Profile")));
row.add(new NewLine(1, new Integer(Theme.ComponentLight), Graphics.DOTTED));
row.add(configureName);
add(row);
//用户的界面主题
Row row6 = new Row();
row6.add(new TextBlock(Res.get("Theme")));
row6.add(new NewLine(1, new Integer(Theme.ComponentLight), Graphics.DOTTED));
add(row6);
theme.add(new ListElement(Theme.themes[0], Configure.themeName.equals(Theme.themes[0])));
theme.add(new ListElement(Theme.themes[1], Configure.themeName.equals(Theme.themes[1])));
theme.add(new ListElement(Theme.themes[2], Configure.themeName.equals(Theme.themes[2])));
theme.add(new ListElement(Theme.themes[3], Configure.themeName.equals(Theme.themes[3])));
theme.add(new ListElement(Theme.themes[4], Configure.themeName.equals(Theme.themes[4])));
theme.add(new ListElement(Theme.themes[5], Configure.themeName.equals(Theme.themes[5])));
theme.add(new ListElement(Theme.themes[6], Configure.themeName.equals(Theme.themes[6])));
theme.add(new ListElement(Theme.themes[7], Configure.themeName.equals(Theme.themes[7])));
theme.add(new ListElement(Theme.themes[8], Configure.themeName.equals(Theme.themes[8])));
theme.setItemListener(this);
add(theme);
//用户选择的系统字体路径,分别为0:点阵 1:小 2:中 3:大
Row row2 = new Row();
row2.add(new TextBlock(Res.get("Inter Font")));
row2.add(new NewLine(1, new Integer(Theme.ComponentLight), Graphics.DOTTED));
add(row2);
interFont.add(new ListElement(Res.get("Small Font"), Configure.innerFontIndex == 1));
interFont.add(new ListElement(Res.get("Medium Font"), Configure.innerFontIndex == 2));
interFont.add(new ListElement(Res.get("Large Font"), Configure.innerFontIndex == 3));
interFont.setItemListener(this);
add(interFont);
//颜色设置
Row rowColor = new Row();
rowColor.add(new TextBlock(Res.get("Color") + Res.get("Setup")));
rowColor.add(new NewLine(1, new Integer(Theme.ComponentLight), Graphics.DOTTED));
rowColor.add(new TextBlock(Res.get("Foreground Color"), true));
fontColor1.setText(Integer.toHexString(Configure.fontColor1));
rowColor.add(fontColor1);
rowColor.add(new TextBlock(Res.get("Foreground Color2"), true));
fontColor2.setText(Integer.toHexString(Configure.fontColor2));
rowColor.add(fontColor2);
rowColor.add(new TextBlock(Res.get("Background Color"), true));
backgroundColor.setText(Integer.toHexString(Configure.backgroundColor));
rowColor.add(backgroundColor);
rowColor.add(new TextBlock(Res.get("Color Style"), true));
add(rowColor);
colorShade.add(new ListElement(Res.get("Trans Color"), !Configure.colorShade));
colorShade.add(new ListElement(Res.get("Shade Color"), Configure.colorShade));
add(colorShade);
//用户定义的阅读背景图片
/*Row rowBackImage = new Row();
rowBackImage.add(new TextBlock(Res.get("Background Image"), true));
rowBackImage.add(new NewLine(1, new Integer(Theme.ComponentLight), Graphics.DOTTED));
add(rowBackImage);
backgroundImage.add(new ListElement(Res.get("Unload"), "1".equals(Configure.backgroundImage)));
backgroundImage.add(new ListElement(Res.get("Unload"), !"1".equals(Configure.backgroundImage)));
add(backgroundImage);*/
//用户定义的阅读时的行间距及背景图片
Row row3 = new Row();
/*row3.add(new TextBlock("Alpha(0~255):", true));
alpha.setText("" + Configure.alpha);
row3.add(alpha);*/
row3.add(new TextBlock(Res.get("Line Space"), true));
row3.add(lineSpace);
row3.add(new NewLine());
row3.add(new TextBlock(Res.get("Slip Menu"), true));
row3.add(slipMenu);
row3.add(new NewLine());
add(row3);
//自动滚屏时的间隔时间
Row row8 = new Row();
row8.add(new TextBlock(Res.get("Scroll") + Res.get("Setup") + "(1/100ms)"));
row8.add(new NewLine(1, new Integer(Theme.ComponentLight), Graphics.DOTTED));
row8.add(new TextBlock(Res.get("by Pixel")));
row8.add(pixelDelay);
row8.add(new NewLine());
row8.add(new TextBlock(Res.get("by Line")));
row8.add(lineDelay);
row8.add(new NewLine());
row8.add(new TextBlock(Res.get("by Page")));
row8.add(pageDelay);
row8.add(new NewLine());
add(row8);
Row row5 = new Row();
row5.add(new TextBlock(Res.get("Theme Style")));
row5.add(new NewLine(1, new Integer(Theme.ComponentLight), Graphics.DOTTED));
add(row5);
complexTheme.add(new ListElement(Res.get("Plain"), !Theme.COMPLEX_THEME));
complexTheme.add(new ListElement(Res.get("Complex") + Res.get("More Memory"), Theme.COMPLEX_THEME));
complexTheme.setItemListener(this);
add(complexTheme);
Row row9 = new Row();
row9.add(new TextBlock(Res.get("Reserve Line When TurnPage")));
row9.add(new NewLine(1, new Integer(Theme.ComponentLight), Graphics.DOTTED));
add(row9);
reserveLineWhenTurnPage.add(new ListElement(Res.get("Yes"), Configure.reserveLineWhenTurnPage));
reserveLineWhenTurnPage.add(new ListElement(Res.get("No"), !Configure.reserveLineWhenTurnPage));
add(reserveLineWhenTurnPage);
Row row10 = new Row();
row10.add(new TextBlock(Res.get("Show Under Line")));
row10.add(new NewLine(1, new Integer(Theme.ComponentLight), Graphics.DOTTED));
add(row10);
underline.add(new ListElement(Res.get("Disable"), !Configure.showUnderline));
underline.add(new ListElement(Res.get("Solid"), (Configure.showUnderline && !Configure.underlineDot)));
underline.add(new ListElement(Res.get("Dotted"), (Configure.showUnderline && Configure.underlineDot)));
add(underline);
addCommand(new Command(Res.get("Save"), Command.OK, 1));
addCommand(new Command(Res.get("Close"), Command.EXIT, 1));
}
public void commandAction(Command cmd, Component c) {
String str = cmd.getLabel();
if (str.equals(Res.get("Save"))) {
try {
//Configure.colorShade = colorStyle.getCheckedIndex() == 1;
if (!"".equals(configureName.getText())) {
Configure.configureName = configureName.getText();
}
Configure.themeName = theme.getCheckedItem().getText();
Configure.innerFontIndex = (byte) interFont.getCheckedIndex() + 1;
try {
Configure.fontColor1 = Integer.parseInt(fontColor1.getText(), 16);
} catch (Exception e) {
e.printStackTrace();
Configure.fontColor1 = 0;
}
try {
Configure.fontColor2 = Integer.parseInt(fontColor2.getText(), 16);
} catch (Exception e) {
e.printStackTrace();
Configure.fontColor2 = 0;
}
try {
Configure.backgroundColor = Integer.parseInt(backgroundColor.getText(), 16);
} catch (Exception e) {
e.printStackTrace();
Configure.backgroundColor = 0xFFFFFF;
}
Configure.colorShade = colorShade.getCheckedIndex() == 1;
/*if (backgroundImage.getCheckedIndex() == 0) {
Configure.backgroundImage = "";
} else {
Configure.backgroundImage = backgroundImage.getCheckedItem().getText();
}
try {
int a = Integer.parseInt(alpha.getText());
a = a > 255 ? 255 : a;
a = a < 0 ? 0 : a;
Configure.alpha = (short) a;
} catch (Exception e) {
Configure.alpha = 255;
}*/
try {
int v = Integer.parseInt(lineSpace.getText());
v = v < -2 ? -2 : v;
v = v > 10 ? 10 : v;
Configure.linePadding = v;
} catch (Exception e) {
Configure.linePadding = 4;
}
System.out.println("Configure.linePadding = " + Configure.linePadding);
try {
int v = Integer.parseInt(slipMenu.getText());
Configure.slipDistance = v;
} catch (Exception e) {
Configure.slipDistance = 150;
}
try {
Configure.pixelScrollDelay = Integer.parseInt(pixelDelay.getText());
} catch (Exception e) {
Configure.pixelScrollDelay = 1;
}
try {
Configure.lineScrollDelay = Integer.parseInt(lineDelay.getText());
} catch (Exception e) {
Configure.lineScrollDelay = 10;
}
try {
Configure.pageScrollDelay = Integer.parseInt(pageDelay.getText());
} catch (Exception e) {
Configure.pageScrollDelay = 50;
}
Configure.complexTheme = Theme.COMPLEX_THEME = complexTheme.getCheckedIndex() != 0;
Configure.reserveLineWhenTurnPage = reserveLineWhenTurnPage.getCheckedIndex() == 0;
if (underline.getCheckedIndex() == 0) {
Configure.showUnderline = false;
} else {
Configure.showUnderline = true;
Configure.underlineDot = underline.getCheckedIndex() == 2;
}
Configure.save();
Configure.loadProfile(oldProfileIndex); //加载原来的配置文件
mainCanvas.closePopup();
} catch (Exception e) {
showAlert(e.toString());
}
} else if (str.equals(Res.get("Close"))) {
mainCanvas.closePopup();
} else {
}
}
public void valueChanged(Object obj) {
if (obj instanceof ListBox) {
ListBox lb = (ListBox) obj;
if (lb == complexTheme) {
Theme.COMPLEX_THEME = lb.getCheckedIndex() != 0;
} else if (lb == theme) {
Theme.loadTheme(lb.getCheckedItem().getText());
} else if (lb == animate) {
Configure.enableAnimate = lb.getCheckedIndex() == 0;
} else if (lb == interFont) {
Component.defaultFont = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_LARGE);
if (Component.defaultFont.getHeight() > 16) {
Component.defaultFont = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
if (Component.defaultFont.getHeight() > 16) {
Component.defaultFont = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL);
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -