/*
* #######################################################
*
* Copyright (c) 2013, A. Weinberger. All rights reserved.
* --------------------------------------------------------
*/
package ale.model.skin;
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import ale.Constants;
import ale.model.skin.SkinConstants.Animation;
import ale.model.skin.SkinConstants.CommandButton;
import ale.model.skin.SkinConstants.Fontstyle;
import ale.model.skin.SkinConstants.Fonttype;
import ale.model.skin.SkinConstants.Imagetype;
import ale.model.skin.SkinConstants.Layout;
import ale.model.skin.SkinConstants.Position;
import ale.model.skin.SkinConstants.UIResNumbers;
import ale.util.fileUtil.FileUtil;
final class SkinPropertiesReader {
private SkinPropertiesReader() {
}
/*
* Reads the saved skin properties from file.
*
* The skinpath points to the location where the unpacked skin is saved.
*/
protected static void read(SkinPropertiesVO props, Path source) throws IOException {
assert (props != null) && FileUtil.control(source);
readImages(source, props);
readLayoutSettings(source, props);
props.setChangestatus(false);
}
private static void readImages(Path path, SkinPropertiesVO props) {
Path imgPath = path.getParent().resolve(Constants.SKIN_IMGFOLDER);
/*
* The first part reads the images. The images are saved with the correct resource number. If a certain image exist in the
* image folder it gets inserted.
*/
if (exists(imgPath.resolve(Constants.SKIN_BG_NAME))) {
props.setBackgroundWithoutHandling(imgPath.resolve(Constants.SKIN_BG_NAME));
}
if (exists(getImage(imgPath, UIResNumbers.BRANDING_SMALL.getNum()))
&& exists(getImage(imgPath, UIResNumbers.BRANDING_MEDIUM.getNum()))
&& exists(getImage(imgPath, UIResNumbers.BRANDING_BIG.getNum()))) {
props.setBranding(getImage(imgPath, UIResNumbers.BRANDING_SMALL.getNum()),
getImage(imgPath, UIResNumbers.BRANDING_MEDIUM.getNum()), getImage(imgPath, UIResNumbers.BRANDING_BIG.getNum()));
} else {
props.setBranding(null, null, null);
}
if (exists(getImage(imgPath, UIResNumbers.WINDOW.getNum()))) {
props.setImgPath_Window(getImage(imgPath, UIResNumbers.WINDOW.getNum()));
}
if (exists(getImage(imgPath, UIResNumbers.PWFIELD_DEF.getNum()))) {
props.setImgPath_PWField(getImage(imgPath, UIResNumbers.PWFIELD_DEF.getNum()), Imagetype.DEFAULT);
}
if (exists(getImage(imgPath, UIResNumbers.PWFIELD_DIS.getNum()))) {
props.setImgPath_PWField(getImage(imgPath, UIResNumbers.PWFIELD_DIS.getNum()), Imagetype.DISABLED);
}
if (exists(getImage(imgPath, UIResNumbers.PWFIELD_KFOC.getNum()))) {
props.setImgPath_PWField(getImage(imgPath, UIResNumbers.PWFIELD_KFOC.getNum()), Imagetype.KEYFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.PWFIELD_MFOC.getNum()))) {
props.setImgPath_PWField(getImage(imgPath, UIResNumbers.PWFIELD_MFOC.getNum()), Imagetype.MOUSEFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.SLIDER_BAR_DEF.getNum()))) {
props.setImgPath_SliderBar(getImage(imgPath, UIResNumbers.SLIDER_BAR_DEF.getNum()), Imagetype.DEFAULT);
}
if (exists(getImage(imgPath, UIResNumbers.SLIDER_BAR_FOC.getNum()))) {
props.setImgPath_SliderBar(getImage(imgPath, UIResNumbers.SLIDER_BAR_FOC.getNum()), Imagetype.FOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.SLIDER_BAR_PRE.getNum()))) {
props.setImgPath_SliderBar(getImage(imgPath, UIResNumbers.SLIDER_BAR_PRE.getNum()), Imagetype.PRESSED);
}
if (exists(getImage(imgPath, UIResNumbers.SLIDER_UP_DEF.getNum()))) {
props.setImgPath_SliderArrowUp(getImage(imgPath, UIResNumbers.SLIDER_UP_DEF.getNum()), Imagetype.DEFAULT);
}
if (exists(getImage(imgPath, UIResNumbers.SLIDER_UP_FOC.getNum()))) {
props.setImgPath_SliderArrowUp(getImage(imgPath, UIResNumbers.SLIDER_UP_FOC.getNum()), Imagetype.FOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.SLIDER_UP_PRE.getNum()))) {
props.setImgPath_SliderArrowUp(getImage(imgPath, UIResNumbers.SLIDER_UP_PRE.getNum()), Imagetype.PRESSED);
}
if (exists(getImage(imgPath, UIResNumbers.SLIDER_DOWN_DEF.getNum()))) {
props.setImgPath_SliderArrowDown(getImage(imgPath, UIResNumbers.SLIDER_DOWN_DEF.getNum()), Imagetype.DEFAULT);
}
if (exists(getImage(imgPath, UIResNumbers.SLIDER_DOWN_FOC.getNum()))) {
props.setImgPath_SliderArrowDown(getImage(imgPath, UIResNumbers.SLIDER_DOWN_FOC.getNum()), Imagetype.FOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.SLIDER_DOWN_PRE.getNum()))) {
props.setImgPath_SliderArrowDown(getImage(imgPath, UIResNumbers.SLIDER_DOWN_PRE.getNum()), Imagetype.PRESSED);
}
if (exists(getImage(imgPath, UIResNumbers.SLIDER_MID_DEF.getNum()))) {
props.setImgPath_SliderMidBtn(getImage(imgPath, UIResNumbers.SLIDER_MID_DEF.getNum()), Imagetype.DEFAULT);
}
if (exists(getImage(imgPath, UIResNumbers.SLIDER_MID_FOC.getNum()))) {
props.setImgPath_SliderMidBtn(getImage(imgPath, UIResNumbers.SLIDER_MID_FOC.getNum()), Imagetype.FOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.SLIDER_MID_PRE.getNum()))) {
props.setImgPath_SliderMidBtn(getImage(imgPath, UIResNumbers.SLIDER_MID_PRE.getNum()), Imagetype.PRESSED);
}
if (exists(getImage(imgPath, UIResNumbers.ACCESSSYMBOL.getNum()))) {
props.setImgPath_AccessSym(getImage(imgPath, UIResNumbers.ACCESSSYMBOL.getNum()));
}
if (exists(getImage(imgPath, UIResNumbers.SHUTDOWNSYMBOL.getNum()))) {
props.setImgPath_ShutdownSym(getImage(imgPath, UIResNumbers.SHUTDOWNSYMBOL.getNum()));
}
if (exists(getImage(imgPath, UIResNumbers.SHUTDOWNUPDATESYMBOL.getNum()))) {
props.setImgPath_ShutdownUpdateSym(getImage(imgPath, UIResNumbers.SHUTDOWNUPDATESYMBOL.getNum()));
}
if (exists(getImage(imgPath, UIResNumbers.SHUTDOWNARROWSYMBOL.getNum()))) {
props.setImgPath_ShutdownArrowSym(getImage(imgPath, UIResNumbers.SHUTDOWNARROWSYMBOL.getNum()));
}
if (exists(getImage(imgPath, UIResNumbers.USERLIST_IMAGEFRAME_MFOC.getNum()))) {
props.setImgPath_UserlistImage(getImage(imgPath, UIResNumbers.USERLIST_IMAGEFRAME_MFOC.getNum()), Imagetype.MOUSEFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.USERLIST_IMAGEFRAME_SEL.getNum()))) {
props.setImgPath_UserlistImage(getImage(imgPath, UIResNumbers.USERLIST_IMAGEFRAME_SEL.getNum()), Imagetype.SELECTED);
}
if (exists(getImage(imgPath, UIResNumbers.USERLIST_IMAGEFRAME_FOCSEL.getNum()))) {
props.setImgPath_UserlistImage(getImage(imgPath, UIResNumbers.USERLIST_IMAGEFRAME_FOCSEL.getNum()), Imagetype.FOCUSSELECTED);
}
if (exists(getImage(imgPath, UIResNumbers.USERLIST_IMAGEFRAME_DEF.getNum()))) {
props.setImgPath_UserlistImage(getImage(imgPath, UIResNumbers.USERLIST_IMAGEFRAME_DEF.getNum()), Imagetype.DEFAULT);
}
if (exists(getImage(imgPath, UIResNumbers.USERTILE_IMAGEFRAME_DEF.getNum()))) {
props.setImgPath_UsertileImage(getImage(imgPath, UIResNumbers.USERTILE_IMAGEFRAME_DEF.getNum()));
}
if (exists(getImage(imgPath, UIResNumbers.COMBTNARROW_KFOC.getNum()))) {
props.setImgPath_CommandBtnArrow(getImage(imgPath, UIResNumbers.COMBTNARROW_KFOC.getNum()), Imagetype.KEYFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.COMBTNARROW_MFOC.getNum()))) {
props.setImgPath_CommandBtnArrow(getImage(imgPath, UIResNumbers.COMBTNARROW_MFOC.getNum()), Imagetype.MOUSEFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.COMBTNARROW_PRE.getNum()))) {
props.setImgPath_CommandBtnArrow(getImage(imgPath, UIResNumbers.COMBTNARROW_PRE.getNum()), Imagetype.PRESSED);
}
if (exists(getImage(imgPath, UIResNumbers.COMBTNARROW_DEF.getNum()))) {
props.setImgPath_CommandBtnArrow(getImage(imgPath, UIResNumbers.COMBTNARROW_DEF.getNum()), Imagetype.DEFAULT);
}
if (exists(getImage(imgPath, UIResNumbers.COMBTN_KFOC.getNum()))) {
props.setImgPath_CommandBtn(getImage(imgPath, UIResNumbers.COMBTN_KFOC.getNum()), Imagetype.KEYFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.COMBTN_MFOC.getNum()))) {
props.setImgPath_CommandBtn(getImage(imgPath, UIResNumbers.COMBTN_MFOC.getNum()), Imagetype.MOUSEFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.COMBTN_PRE.getNum()))) {
props.setImgPath_CommandBtn(getImage(imgPath, UIResNumbers.COMBTN_PRE.getNum()), Imagetype.PRESSED);
}
if (exists(getImage(imgPath, UIResNumbers.COMBTN_DEF.getNum()))) {
props.setImgPath_CommandBtn(getImage(imgPath, UIResNumbers.COMBTN_DEF.getNum()), Imagetype.DEFAULT);
}
if (exists(getImage(imgPath, UIResNumbers.STDBTN_KFOC.getNum()))) {
props.setImgPath_StandardBtn(getImage(imgPath, UIResNumbers.STDBTN_KFOC.getNum()), Imagetype.KEYFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.STDBTN_MFOC.getNum()))) {
props.setImgPath_StandardBtn(getImage(imgPath, UIResNumbers.STDBTN_MFOC.getNum()), Imagetype.MOUSEFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.STDBTN_KFOCMFOC.getNum()))) {
props.setImgPath_StandardBtn(getImage(imgPath, UIResNumbers.STDBTN_KFOCMFOC.getNum()), Imagetype.MOUSEFOCUS_KEYFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.STDBTN_PRE.getNum()))) {
props.setImgPath_StandardBtn(getImage(imgPath, UIResNumbers.STDBTN_PRE.getNum()), Imagetype.PRESSED);
}
if (exists(getImage(imgPath, UIResNumbers.STDBTN_DEF.getNum()))) {
props.setImgPath_StandardBtn(getImage(imgPath, UIResNumbers.STDBTN_DEF.getNum()), Imagetype.DEFAULT);
}
if (exists(getImage(imgPath, UIResNumbers.PWBTN_KFOCMFOC.getNum()))) {
props.setImgPath_PWBtn(getImage(imgPath, UIResNumbers.PWBTN_KFOCMFOC.getNum()), Imagetype.MOUSEFOCUS_KEYFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.PWBTN_PRE.getNum()))) {
props.setImgPath_PWBtn(getImage(imgPath, UIResNumbers.PWBTN_PRE.getNum()), Imagetype.PRESSED);
}
if (exists(getImage(imgPath, UIResNumbers.PWBTN_DEF.getNum()))) {
props.setImgPath_PWBtn(getImage(imgPath, UIResNumbers.PWBTN_DEF.getNum()), Imagetype.DEFAULT);
}
if (exists(getImage(imgPath, UIResNumbers.SHUTDOWN_KFOCMFOC.getNum()))) {
props.setImgPath_ShutdownBtn(getImage(imgPath, UIResNumbers.SHUTDOWN_KFOCMFOC.getNum()), Imagetype.MOUSEFOCUS_KEYFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.SHUTDOWN_KFOC.getNum()))) {
props.setImgPath_ShutdownBtn(getImage(imgPath, UIResNumbers.SHUTDOWN_KFOC.getNum()), Imagetype.KEYFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.SHUTDOWN_MFOC.getNum()))) {
props.setImgPath_ShutdownBtn(getImage(imgPath, UIResNumbers.SHUTDOWN_MFOC.getNum()), Imagetype.MOUSEFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.SHUTDOWN_PRE.getNum()))) {
props.setImgPath_ShutdownBtn(getImage(imgPath, UIResNumbers.SHUTDOWN_PRE.getNum()), Imagetype.PRESSED);
}
if (exists(getImage(imgPath, UIResNumbers.SHUTDOWN_DEF.getNum()))) {
props.setImgPath_ShutdownBtn(getImage(imgPath, UIResNumbers.SHUTDOWN_DEF.getNum()), Imagetype.DEFAULT);
}
if (exists(getImage(imgPath, UIResNumbers.SHUTDOWNMENU_KFOCMFOC.getNum()))) {
props.setImgPath_ShutdownMenu(getImage(imgPath, UIResNumbers.SHUTDOWNMENU_KFOCMFOC.getNum()), Imagetype.MOUSEFOCUS_KEYFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.SHUTDOWNMENU_KFOC.getNum()))) {
props.setImgPath_ShutdownMenu(getImage(imgPath, UIResNumbers.SHUTDOWNMENU_KFOC.getNum()), Imagetype.KEYFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.SHUTDOWNMENU_MFOC.getNum()))) {
props.setImgPath_ShutdownMenu(getImage(imgPath, UIResNumbers.SHUTDOWNMENU_MFOC.getNum()), Imagetype.MOUSEFOCUS);
}
if (exists(getImage(imgPath, UIResNumbers.SHUTDOWNMENU_PRE.getNum()))) {
props.setImgPath_ShutdownMenu(getImage(imgPath, UIResNumbers.SHUTDOWNMENU_PRE.getNum()), Imagetype.PRESSED);
}
if (exists(getImage(imgPath, UIResNumbers.SHUTDOWNMENU_DEF.getNum()))) {
props.setImgPath_ShutdownMenu(getImage(imgPath, UIResNumbers.SHUTDOWNMENU_DEF.getNum()), Imagetype.DEFAULT);
}
if (exists(getImage(imgPath, UIResNumbers.LOADINGSTATUS.getNum()))) {
props.setImgPathLoadingStatusBg(getImage(imgPath, UIResNumbers.LOADINGSTATUS.getNum()));
}
}
private static void readLayoutSettings(Path path, SkinPropertiesVO props) throws IOException {
String line = null;
String[] split = null;
/*
* The first part of the line gets transformed in an enum object to switch over it.
*/
try (BufferedReader reader = Files.newBufferedReader(path, Charset.defaultCharset())) {
while ((line = reader.readLine()) != null) {
if (line.equals("") || (line.charAt(0) == SkinConstants.COMMENT)) {
continue;
}
split = line.split(SkinConstants.SPLIT);
split = new String[] { split[0], split.length < 2 ? null : split[1] };
if (split[1] == null) {
continue;
}
Layout layoutEnum = null;
try {
layoutEnum = Layout.valueOf(split[0].trim().toUpperCase());
} catch (IllegalArgumentException e) {
continue;
}
if (layoutEnum != null) {
switch (layoutEnum) {
case BRANDING_POSITION:
props.setBrandingPosition(getPosition(split[1]));
break;
case WINDOW_ACTIVE:
props.setWindowActive(Boolean.parseBoolean(split[1]));
break;
case WINDOW_HEIGHT:
props.setWindowHeight(parseInt(split[1]));
break;
case WINDOW_WIDTH:
props.setWindowWidth(parseInt(split[1]));
break;
case WINDOW_BORDERTHICKNESS:
props.setWindowBorderthickness(stringToArray_4(split[1]));
break;
case WINDOW_PADDING:
props.setWindowPadding(stringToArray_4(split[1]));
break;
case WINDOW_POSITION:
props.setWindowPosition(getPosition(split[1]));
break;
case WINDOW_ANIMATION:
props.setWindowAnimation(getAnimation(split[1]));
break;
case WINDOW_INNERANIMATION:
props.setWindowInnerAnimation(getAnimation(split[1]));
break;
//
case ACCBTN_HEIGHT:
props.setAccButtonHeight(parseInt(split[1]));
break;
case ACCBTN_WIDTH:
props.setAccButtonWidth(parseInt(split[1]));
break;
case ACCBTN_POSITION:
props.setAccButtonPosition(getPosition(split[1]));
break;
//
case COMBTN_MINHEIGHT:
props.setCommandButtonMinHeight(parseInt(split[1]));
break;
case COMBTN_MINWIDTH:
props.setCommandButtonMinWidth(parseInt(split[1]));
break;
case COMBTN_BORDERTHICKNESS:
props.setCommandButtonBorderthickness(stringToArray_4(split[1]));
break;
case COMBTN_PADDING:
props.setCommandButtonPadding(stringToArray_4(split[1]));
break;
case COMBTN_MARGIN:
props.setCommandButtonMargin(stringToArray_4(split[1]));
break;
case COMBTN_CONTENTALIGN:
props.setCommandButtonArrowpositionOnRight(Boolean.parseBoolean(split[1]));
break;
case COMBTN_BTNVISIBILITY_SWITCH:
props.setCommandButtonVisibility(CommandButton.SWITCH, Boolean.parseBoolean(split[1]));
break;
case COMBTN_BTNVISIBILITY_LOCK:
props.setCommandButtonVisibility(CommandButton.LOCK, Boolean.parseBoolean(split[1]));
break;
case COMBTN_BTNVISIBILITY_LOGOUT:
props.setCommandButtonVisibility(CommandButton.LOGOUT, Boolean.parseBoolean(split[1]));
break;
case COMBTN_BTNVISIBILITY_PASSWORD:
props.setCommandButtonVisibility(CommandButton.PASSWORD, Boolean.parseBoolean(split[1]));
break;
case COMBTN_BTNVISIBILITY_TASKMANAGER:
props.setCommandButtonVisibility(CommandButton.TASKMANAGER, Boolean.parseBoolean(split[1]));
break;
//
case STDBTN_HEIGHT:
props.setStandardButtonMinHeight(parseInt(split[1]));
break;
case STDBTN_WIDTH:
props.setStandardButtonMinWidth(parseInt(split[1]));
break;
case STDBTN_BORDERTHICKNESS:
props.setStandardButtonBorderthickness(stringToArray_4(split[1]));
break;
case STDBTN_POSITION:
props.setStandardButtonPosition(getPosition(split[1]));
break;
case STDBTN_MARGIN:
props.setStandardButtonMargin(stringToArray_4(split[1]));
break;
case STDBTN_PADDING:
props.setStandardButtonPadding(stringToArray_4(split[1]));
break;
//
case PWBTN_HEIGHT:
props.setPasswordButtonHeight(parseInt(split[1]));
break;
case PWBTN_WIDTH:
props.setPasswordButtonWidth(parseInt(split[1]));
break;
case PWBTN_BORDERTHICKNESS:
props.setPasswordButtonBorderthickness(stringToArray_4(split[1]));
break;
case PWBTN_MARGIN:
props.setPasswordButtonMargin(stringToArray_4(split[1]));
break;
//
case SHDFRAME_LAYOUT:
props.setShutdownframeBorderlayout(Boolean.parseBoolean(split[1]));
break;
case SHDFRAME_POSITION:
props.setShutdownframePosition(getPosition(split[1]));
break;
//
case SHDBTN_HEIGHT:
props.setShutdownButtonHeight(parseInt(split[1]));
break;
case SHDBTN_WIDTH:
props.setShutdownButtonWidth(parseInt(split[1]));
break;
case SHDBTN_BORDERTHICKNESS:
props.setShutdownButtonBorderthickness(stringToArray_4(split[1]));
break;
case SHDBTN_MARGIN:
props.setShutdownButtonMargin(stringToArray_4(split[1]));
break;
case SHDBTN_POSITION:
props.setShutdownButtonPosition(getPosition(split[1]));
break;
case SHDBTN_CONTENT:
props.setShutdownButtonContent(split[1]);
break;
//
case SHDMENU_HEIGHT:
props.setShutdownmenuButtonHeight(parseInt(split[1]));
break;
case SHDMENU_WIDTH:
props.setShutdownmenuButtonWidth(parseInt(split[1]));
break;
case SHDMENU_BORDERTHICKNESS:
props.setShutdownmenuButtonBorderthickness(stringToArray_4(split[1]));
break;
case SHDMENU_MARGIN:
props.setShutdownmenuButtonMargin(stringToArray_4(split[1]));
break;
case SHDMENU_POSITION:
props.setShutdownmenuButtonPosition(getPosition(split[1]));
break;
case SHDMENU_CONTENT:
props.setShutdownmenuButtonContent(split[1]);
break;
//
case ACCSHD_COMBINED:
props.setCombinedShdAcc(Boolean.parseBoolean(split[1]));
break;
case ACCSHD_POSITION:
props.setCombinedShdAcc_Position(getPosition(split[1]));
break;
//
case LOCALEBTN_VISIBILITY:
props.setLocaleButtonVisibility(Boolean.parseBoolean(split[1]));
break;
case LOCALEBTN_POSITION:
props.setLocaleButtonPosition(getPosition(split[1]));
break;
case LOCALEBTN_PADDING:
props.setLocaleButtonPadding(stringToArray_4(split[1]));
break;
//
case SECURITYOPTIONS_POSITION:
props.setSecurityMenuPosition(getPosition(split[1]));
break;
case SECURITYOPTIONS_PADDING:
props.setSecurityMenuPadding(stringToArray_4(split[1]));
break;
//
case OPTIONSBAR_HEIGHT:
props.setOptionsbarHeight(parseInt(split[1]));
break;
case ACC_FIX:
props.setWrapAccInNewElement(Boolean.parseBoolean(split[1]));
break;
//
case USERLIST_HEIGHT:
props.setUserlistHeight(parseInt(split[1]));
break;
case USERLIST_LAYOUT:
props.setUserlistVertical(Boolean.parseBoolean(split[1]));
break;
case USERLIST_POSITION:
props.setUserlistPosition(getPosition(split[1]));
break;
case USERLIST_PADDING:
props.setUserlistPadding(stringToArray_4(split[1]));
break;
//
case USERLIST_IMAGE_HEIGHT:
props.setUserlistImageHeight(parseInt(split[1]));
break;
case USERLIST_IMAGE_WIDTH:
props.setUserlistImageWidth(parseInt(split[1]));
break;
case USERLIST_IMAGE_PADDING:
props.setUserlistImagePadding(stringToArray_4(split[1]));
break;
case USERLIST_IMAGEFRAME_HEIGHT:
props.setUserlistImageFrameHeight(parseInt(split[1]));
break;
case USERLIST_IMAGEFRAME_WIDTH:
props.setUserlistImageFrameWidth(parseInt(split[1]));
break;
//
case USERTILE_LAYOUT:
props.setUsertileLayout(Boolean.parseBoolean(split[1]));
break;
case USERTILE_POSITION:
props.setUsertilePosition(getPosition(split[1]));
break;
case USERTILE_PWAREAONRIGHT:
props.setPWAreaPositionOnRightOfTexts(Boolean.parseBoolean(split[1]));
break;
case USERTILE_STATUSONRIGHT:
props.setStatusPositionOnRight(Boolean.parseBoolean(split[1]));
break;
case USERTILE_IMAGE_POSITION:
props.setUsertileImagePosition(getPosition(split[1]));
break;
//
case USERTILE_IMAGE_HEIGHT:
props.setUsertileImageHeight(parseInt(split[1]));
break;
case USERTILE_IMAGE_WIDTH:
props.setUsertileImageWidth(parseInt(split[1]));
break;
case USERTILE_IMAGE_PADDING:
props.setUsertileImagePadding(stringToArray_4(split[1]));
break;
case USERTILE_IMAGEFRAME_HEIGHT:
props.setUsertileImageFrameHeight(parseInt(split[1]));
break;
case USERTILE_IMAGEFRAME_WIDTH:
props.setUsertileImageFrameWidth(parseInt(split[1]));
break;
//
case PWFIELD_HEIGHT:
props.setPWfieldHeight(parseInt(split[1]));
break;
case PWFIELD_WIDTH:
props.setPWfieldWidth(parseInt(split[1]));
break;
case PWFIELD_BORDERTHICKNESS:
props.setPWfieldBorderthickness(stringToArray_4(split[1]));
break;
case PWFIELD_MARGIN:
props.setPWfieldMargin(stringToArray_4(split[1]));
break;
//
case PWAREA_UPSHIFT:
props.setPasswordfieldUpshift(parseInt(split[1]));
break;
case PWAREA_DOWNSHIFT:
props.setPasswordfieldDownshift(parseInt(split[1]));
break;
case PWAREA_RIGHTSHIFT:
props.setPasswordfieldRightshift(parseInt(split[1]));
break;
//
case LOADINGSTATUS_WIDTH:
props.setLoadingStatusWidth(parseInt(split[1]));
break;
case LOADINGSTATUS_BORDERTHICKNESS:
props.setLoadingStatusBorderthickness(stringToArray_4(split[1]));
break;
case LOADINGSTATUS_ANIMATION:
props.setLoadingStatusAnimation(getAnimation(split[1]));
break;
case LOADINGSTATUS_RINGANIMVISIBILITY:
props.setLoadingStatusRinganimHidden(Boolean.parseBoolean(split[1]));
break;
//
case FONTSHADOW:
props.setShadowIntensity(parseInt(split[1]));
break;
// Fonts --->
case SHD_FONT:
props.setShutdownFont(split[1]);
break;
case SHD_FONTSIZE:
props.setShutdownFontsize(parseInt(split[1]));
break;
case SHD_FONTTYPE:
props.setShutdownFonttype(getFonttype(split[1]));
break;
case SHD_FONTSTYLE:
props.setShutdownFontstyle(getFontstyle(split[1]));
break;
case SHD_FOREGROUND:
props.setShutdownFontcolor(stringToArray_4(split[1]));
break;
//
case SHDMENU_FONT:
props.setShutdownMenuFont(split[1]);
break;
case SHDMENU_FONTSIZE:
props.setShutdownMenuFontsize(parseInt(split[1]));
break;
case SHDMENU_FONTTYPE:
props.setShutdownMenuFonttype(getFonttype(split[1]));
break;
case SHDMENU_FONTSTYLE:
props.setShutdownMenuFontstyle(getFontstyle(split[1]));
break;
case SHDMENU_FOREGROUND:
props.setShutdownMenuFontcolor(stringToArray_4(split[1]));
break;
//
case PWFIELD_FONT:
props.setPWFieldFont(split[1]);
break;
case PWFIELD_FONTSIZE:
props.setPWFieldFontsize(parseInt(split[1]));
break;
case PWFIELD_FONTTYPE:
props.setPWFieldFonttype(getFonttype(split[1]));
break;
case PWFIELD_FONTSTYLE:
props.setPWFieldFontstyle(getFontstyle(split[1]));
break;
case PWFIELD_FOREGROUND:
props.setPWFieldFontcolor(stringToArray_4(split[1]));
break;
//
case RESETPW_FONT:
props.setPWResetFont(split[1]);
break;
case RESETPW_FONTSIZE:
props.setPWResetFontsize(parseInt(split[1]));
break;
case RESETPW_FONTTYPE:
props.setPWResetFonttype(getFonttype(split[1]));
break;
case RESETPW_FONTSTYLE:
props.setPWResetFontstyle(getFontstyle(split[1]));
break;
case RESETPW_FOREGROUND:
props.setPWResetFontcolor(stringToArray_4(split[1]));
break;
//
case LOADINGSTATUS_FONT:
props.setLoadingStatusFont(split[1]);
break;
case LOADINGSTATUS_FONTSIZE:
props.setLoadingStatusFontsize(parseInt(split[1]));
break;
case LOADINGSTATUS_FONTTYPE:
props.setLoadingStatusFonttype(getFonttype(split[1]));
break;
case LOADINGSTATUS_FONTSTYLE:
props.setLoadingStatusFontstyle(getFontstyle(split[1]));
break;
case LOADINGSTATUS_FOREGROUND:
props.setLoadingStatusFontcolor(stringToArray_4(split[1]));
break;
//
case SHORTMESSAGE_FONT:
props.setShortMessageFont(split[1]);
break;
case SHORTMESSAGE_FONTSIZE:
props.setShortMessageFontsize(parseInt(split[1]));
break;
case SHORTMESSAGE_FONTTYPE:
props.setShortMessageFonttype(getFonttype(split[1]));
break;
case SHORTMESSAGE_FONTSTYLE:
props.setShortMessageFontstyle(getFontstyle(split[1]));
break;
case SHORTMESSAGE_FOREGROUND:
props.setShortMessageFontcolor(stringToArray_4(split[1]));
break;
//
case COMBTN_FONT:
props.setCommandButtonFont(split[1]);
break;
case COMBTN_FONTSIZE:
props.setCommandButtonFontsize(parseInt(split[1]));
break;
case COMBTN_FONTTYPE:
props.setCommandButtonFonttype(getFonttype(split[1]));
break;
case COMBTN_FONTSTYLE:
props.setCommandButtonFontstyle(getFontstyle(split[1]));
break;
case COMBTN_FOREGROUND:
props.setCommandButtonFontcolor(stringToArray_4(split[1]));
break;
//
case STDBTN_FONT:
props.setBtn_Std_Font(split[1]);
break;
case STDBTN_FONTSIZE:
props.setBtn_Std_Fontsize(parseInt(split[1]));
break;
case STDBTN_FONTTYPE:
props.setBtn_Std_Fonttype(getFonttype(split[1]));
break;
case STDBTN_FONTSTYLE:
props.setBtn_Std_Fontstyle(getFontstyle(split[1]));
break;
case STDBTN_FOREGROUND:
props.setBtn_Std_Fontcolor(stringToArray_4(split[1]));
break;
//
case STATUSTEXT_FONT:
props.setStatustextFont(split[1]);
break;
case STATUSTEXT_FONTSIZE:
props.setStatustextFontsize(parseInt(split[1]));
break;
case STATUSTEXT_FONTTYPE:
props.setStatustextFonttype(getFonttype(split[1]));
break;
case STATUSTEXT_FONTSTYLE:
props.setStatustextFontstyle(getFontstyle(split[1]));
break;
case STATUSTEXT_FOREGROUND:
props.setStatustextFontcolor(stringToArray_4(split[1]));
break;
//
case STATUSTEXTZOOMED_FONT:
props.setStatustextZoomedFont(split[1]);
break;
case STATUSTEXTZOOMED_FONTSIZE:
props.setStatustextZoomedFontsize(parseInt(split[1]));
break;
case STATUSTEXTZOOMED_FONTTYPE:
props.setStatustextZoomedFonttype(getFonttype(split[1]));
break;
case STATUSTEXTZOOMED_FONTSTYLE:
props.setStatustextZoomedFontstyle(getFontstyle(split[1]));
break;
case STATUSTEXTZOOMED_FOREGROUND:
props.setStatustextZoomedFontcolor(stringToArray_4(split[1]));
break;
//
case NAMETEXT_FONT:
props.setNametextFont(split[1]);
break;
case NAMETEXT_FONTSIZE:
props.setNametextFontsize(parseInt(split[1]));
break;
case NAMETEXT_FONTTYPE:
props.setNametextFonttype(getFonttype(split[1]));
break;
case NAMETEXT_FONTSTYLE:
props.setNametextFontstyle(getFontstyle(split[1]));
break;
case NAMETEXT_FOREGROUND:
props.setNametextFontcolor(stringToArray_4(split[1]));
break;
//
case NAMETEXTZOOMED_FONT:
props.setNametextZoomedFont(split[1]);
break;
case NAMETEXTZOOMED_FONTSIZE:
props.setNametextZoomedFontsize(parseInt(split[1]));
break;
case NAMETEXTZOOMED_FONTTYPE:
props.setNametextZoomedFonttype(getFonttype(split[1]));
break;
case NAMETEXTZOOMED_FONTSTYLE:
props.setNametextZoomedFontstyle(getFontstyle(split[1]));
break;
case NAMETEXTZOOMED_FOREGROUND:
props.setNametextZoomedFontcolor(stringToArray_4(split[1]));
break;
//
default:
throw new IOException();
}
}
}
reader.close();
} catch (IOException e) {
throw e;
}
}
private static boolean exists(Path p) {
return Files.exists(p, LinkOption.NOFOLLOW_LINKS);
}
private static Path getImage(Path dir, int resnum) {
return dir.resolve(resnum + Constants.DEFAULT_SKINIMAGE_TYPE);
}
private static Position getPosition(String s) {
Position ret = null;
if ((s != null) && !s.equals("")) {
try {
ret = Position.valueOf(s.trim().toUpperCase());
} catch (IllegalArgumentException e) {
ret = null;
}
}
return ret;
}
private static Animation getAnimation(String s) {
Animation ret = null;
if ((s != null) && !s.equals("")) {
try {
ret = Animation.valueOf(s.trim().toUpperCase());
} catch (IllegalArgumentException e) {
ret = null;
}
}
return ret;
}
private static Fonttype getFonttype(String s) {
Fonttype ret = null;
if ((s != null) && !s.equals("")) {
try {
ret = Fonttype.valueOf(s.trim().toUpperCase());
} catch (IllegalArgumentException e) {
ret = null;
}
}
return ret;
}
private static Fontstyle getFontstyle(String s) {
Fontstyle ret = null;
if ((s != null) && !s.equals("")) {
try {
ret = Fontstyle.valueOf(s.trim().toUpperCase());
} catch (IllegalArgumentException e) {
ret = null;
}
}
return ret;
}
private static int parseInt(String s) {
int val = -1;
if (s != null) {
try {
val = Integer.parseInt(s);
} catch (NumberFormatException e) {
val = -1;
}
}
return val;
}
private static int[] stringToArray_4(String s) {
int[] ret = null;
if ((s != null) && !s.equals("")) {
String[] tmp = s.split(SkinConstants.SPLIT2);
if (tmp.length == 4) {
ret = new int[4];
try {
for (int i = 0; i < tmp.length; i++) {
ret[i] = Integer.parseInt(tmp[i]);
}
} catch (NumberFormatException e) {
ret = null;
}
}
}
return ret;
}
}