/*
* #######################################################
*
* Copyright (c) 2013, A. Weinberger. All rights reserved.
* --------------------------------------------------------
*/
package ale.view.gui.editor.menus;
import java.awt.Color;
import java.io.File;
import java.nio.file.Path;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import ale.controller.Main;
import ale.model.skin.SkinConstants.Imagetype;
import ale.model.skin.SkinConstants.Position;
import ale.model.skin.SkinPropertiesVO;
import ale.view.gui.editor.fields.BorderField;
import ale.view.gui.editor.fields.CheckField;
import ale.view.gui.editor.fields.ContentField;
import ale.view.gui.editor.fields.ImageField;
import ale.view.gui.editor.fields.MarginField;
import ale.view.gui.editor.fields.PaddingField;
import ale.view.gui.editor.fields.PositionField;
import ale.view.gui.editor.fields.SizeField;
import ale.view.gui.util.VerticalLayout;
public final class ButtonChangesMenu extends ChangesMenus {
private boolean init_1;
private boolean init_2;
private boolean init_3;
private JPanel accBtn;
private JPanel comBtn;
private JPanel stdBtn;
private JPanel pwdBtn;
private JPanel shutdFrame;
private JPanel shutdBtn;
private JPanel shutdMenu;
private JPanel localeBtn;
private JPanel misc;
private SkinPropertiesVO skin;
public ButtonChangesMenu(Color bg, SkinPropertiesVO skin) {
this.skin = skin;
initialize(bg);
}
private void initialize(final Color bg) {
Runnable _runOne = new Runnable() {
@Override
public void run() {
initAccBtn(bg);
initComBtn(bg);
initStdBtn(bg);
ButtonChangesMenu.this.init_1 = true;
}
};
Runnable _runTwo = new Runnable() {
@Override
public void run() {
initPwdBtn(bg);
initShutdFrame(bg);
initShutdBtn(bg);
ButtonChangesMenu.this.init_2 = true;
}
};
Runnable _runThree = new Runnable() {
@Override
public void run() {
initShutdMenu(bg);
initlocaleBtn(bg);
initMisc(bg);
ButtonChangesMenu.this.init_3 = true;
}
};
Main.executeThreads(_runOne, _runTwo, _runThree);
}
public boolean isInitialized() {
return this.init_1 & this.init_2 & this.init_3;
}
public void shutdown() {
this.accBtn = null;
this.comBtn = null;
this.stdBtn = null;
this.pwdBtn = null;
this.shutdFrame = null;
this.shutdBtn = null;
this.shutdMenu = null;
this.localeBtn = null;
this.misc = null;
}
public JPanel getAccessibilityBtnMenu() {
if (!isInitialized()) {
IllegalStateException e = new IllegalStateException("Call init first!");
throw e;
}
return this.accBtn;
}
public JPanel getCommandBtnMenu() {
if (!isInitialized()) {
IllegalStateException e = new IllegalStateException("Call init first!");
throw e;
}
return this.comBtn;
}
public JPanel getStandardBtnMenu() {
if (!isInitialized()) {
IllegalStateException e = new IllegalStateException("Call init first!");
throw e;
}
return this.stdBtn;
}
public JPanel getPasswordBtnMenu() {
if (!isInitialized()) {
IllegalStateException e = new IllegalStateException("Call init first!");
throw e;
}
return this.pwdBtn;
}
public JPanel getShutdownFrameMenu() {
if (!isInitialized()) {
IllegalStateException e = new IllegalStateException("Call init first!");
throw e;
}
return this.shutdFrame;
}
public JPanel getShutdownBtnMenu() {
if (!isInitialized()) {
IllegalStateException e = new IllegalStateException("Call init first!");
throw e;
}
return this.shutdBtn;
}
public JPanel getShutdownmenuMenu() {
if (!isInitialized()) {
IllegalStateException e = new IllegalStateException("Call init first!");
throw e;
}
return this.shutdMenu;
}
public JPanel getLocaleBtnMenu() {
if (!isInitialized()) {
IllegalStateException e = new IllegalStateException("Call init first!");
throw e;
}
return this.localeBtn;
}
public JPanel getMiscMenu() {
if (!isInitialized()) {
IllegalStateException e = new IllegalStateException("Call init first!");
throw e;
}
return this.misc;
}
/*
* ########################################################################## ##
*/
/*
*
*/
private void initAccBtn(Color bg) {
this.accBtn = new JPanel();
this.accBtn.setBackground(bg);
this.accBtn.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
// image
Path initialValue = this.skin.getImgPath_AccessSym();
final ImageField imageField = new ImageField(initialValue, bg, strImgFieldTitle + "(" + strAccessSym + ")", false) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_AccessSym(file.toPath());
updatePathField(ButtonChangesMenu.this.skin.getImgPath_AccessSym(), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_AccessSym(null);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_AccessSym(), true);
}
}
};
// size
int[] size = new int[] { this.skin.getAccButtonWidth(), this.skin.getAccButtonHeight() };
final SizeField sizeField = new SizeField(size, 3, bg, strSizeFieldTitle, true) {
private final long serialVersionUID = 1L;
@Override
public void widthOnKeyReleased(String input) {
if (!ButtonChangesMenu.this.skin.setAccButtonWidth(parseInt(input))) {
updateWidthfieldColor(Color.RED);
}
}
@Override
public void heightOnKeyReleased(String input) {
if (!ButtonChangesMenu.this.skin.setAccButtonHeight(parseInt(input))) {
updateHeightfieldColor(Color.RED);
}
}
@Override
public void resetOnClick() {
ButtonChangesMenu.this.skin.setAccButtonWidth(FAILURE);
ButtonChangesMenu.this.skin.setAccButtonHeight(FAILURE);
update(ButtonChangesMenu.this.skin.getAccButtonWidth(), ButtonChangesMenu.this.skin.getAccButtonHeight());
}
};
// position
Position pos = this.skin.getAccButtonPosition();
boolean[] active = { false, false, false, true, false, true, false, false, false };
final PositionField positionField = new PositionField(pos, active, bg, strPosFieldTitle) {
private final long serialVersionUID = 1L;
@Override
public void toprightOnPressed() {
}
@Override
public void topleftOnPressed() {
}
@Override
public void topOnPressed() {
}
@Override
public void centerrightOnPressed() {
ButtonChangesMenu.this.skin.setAccButtonPosition(Position.RIGHT);
}
@Override
public void centerleftOnPressed() {
ButtonChangesMenu.this.skin.setAccButtonPosition(Position.LEFT);
}
@Override
public void centerOnPressed() {
}
@Override
public void bottomrightOnPressed() {
}
@Override
public void bottomleftOnPressed() {
}
@Override
public void bottomOnPressed() {
}
};
// checkbox
boolean posNone = this.skin.getAccButtonPosition() == Position.NONE;
this.accBtn.add(new CheckField(posNone, bg, strHideFieldTitle, strHide) {
private final long serialVersionUID = 1L;
@Override
public void btnPressed(boolean selected) {
if (selected) {
ButtonChangesMenu.this.skin.setAccButtonPosition(Position.NONE);
} else {
ButtonChangesMenu.this.skin.setAccButtonPosition(null);
}
imageField.setVisible(!selected);
sizeField.setVisible(!selected);
positionField.setVisible(!selected);
}
});
if (posNone) {
imageField.setVisible(false);
sizeField.setVisible(false);
positionField.setVisible(false);
}
this.accBtn.add(imageField);
this.accBtn.add(sizeField);
this.accBtn.add(positionField);
}
/*
*
*/
private void initComBtn(Color bg) {
this.comBtn = new JPanel();
this.comBtn.setBackground(bg);
this.comBtn.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
// image
{
Path initialValue = this.skin.getImgPath_CommandBtn(Imagetype.DEFAULT);
ImageField defaultImage = new ImageField(initialValue, bg, true) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_CommandBtn(file.toPath(), Imagetype.DEFAULT);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_CommandBtn(Imagetype.DEFAULT), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_CommandBtn(null, Imagetype.DEFAULT);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_CommandBtn(Imagetype.DEFAULT), true);
}
}
};
initialValue = this.skin.getImgPath_CommandBtn(Imagetype.MOUSEFOCUS);
ImageField focusImage = new ImageField(initialValue, bg, true) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_CommandBtn(file.toPath(), Imagetype.MOUSEFOCUS);
ButtonChangesMenu.this.skin.setImgPath_CommandBtn(file.toPath(), Imagetype.KEYFOCUS);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_CommandBtn(Imagetype.MOUSEFOCUS), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_CommandBtn(null, Imagetype.MOUSEFOCUS);
ButtonChangesMenu.this.skin.setImgPath_CommandBtn(null, Imagetype.KEYFOCUS);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_CommandBtn(Imagetype.MOUSEFOCUS), true);
}
}
};
initialValue = this.skin.getImgPath_CommandBtn(Imagetype.PRESSED);
ImageField pressedImage = new ImageField(initialValue, bg, true) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_CommandBtn(file.toPath(), Imagetype.PRESSED);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_CommandBtn(Imagetype.PRESSED), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_CommandBtn(null, Imagetype.PRESSED);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_CommandBtn(Imagetype.PRESSED), true);
}
}
};
JTabbedPane pane = createTabbedPane(bg, strImgFieldTitle, defaultImage, focusImage, pressedImage);
pane.setTitleAt(0, strImageDefault);
pane.setTitleAt(1, strImageFocus);
pane.setTitleAt(2, strImagePressed);
this.comBtn.add(pane);
}
// image
{
Path initialValue = this.skin.getImgPath_CommandBtnArrow(Imagetype.DEFAULT);
JPanel symDefault = new ImageField(initialValue, bg, true) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_CommandBtnArrow(file.toPath(), Imagetype.DEFAULT);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_CommandBtnArrow(Imagetype.DEFAULT), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_CommandBtnArrow(null, Imagetype.DEFAULT);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_CommandBtnArrow(Imagetype.DEFAULT), true);
}
}
};
initialValue = this.skin.getImgPath_CommandBtnArrow(Imagetype.MOUSEFOCUS);
JPanel symFocus = new ImageField(initialValue, bg, true) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_CommandBtnArrow(file.toPath(), Imagetype.MOUSEFOCUS);
ButtonChangesMenu.this.skin.setImgPath_CommandBtnArrow(file.toPath(), Imagetype.KEYFOCUS);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_CommandBtnArrow(Imagetype.MOUSEFOCUS), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_CommandBtnArrow(null, Imagetype.MOUSEFOCUS);
ButtonChangesMenu.this.skin.setImgPath_CommandBtnArrow(null, Imagetype.KEYFOCUS);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_CommandBtnArrow(Imagetype.MOUSEFOCUS), true);
}
}
};
initialValue = this.skin.getImgPath_CommandBtnArrow(Imagetype.PRESSED);
JPanel symPressed = new ImageField(initialValue, bg, true) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_CommandBtnArrow(file.toPath(), Imagetype.PRESSED);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_CommandBtnArrow(Imagetype.PRESSED), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_CommandBtnArrow(null, Imagetype.PRESSED);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_CommandBtnArrow(Imagetype.PRESSED), true);
}
}
};
JTabbedPane pane = createTabbedPane(bg, strImgFieldTitle + " (" + strComSym + ")", symDefault, symFocus, symPressed);
pane.setTitleAt(0, strImageDefault);
pane.setTitleAt(1, strImageFocus);
pane.setTitleAt(2, strImagePressed);
this.comBtn.add(pane);
}
// border
final int[] borderthickness = this.skin.getCommandButtonBorderthickness();
this.comBtn.add(new BorderField(borderthickness, bg, strBorderFieldTitle) {
private final long serialVersionUID = 1L;
private int[] tmp = (borderthickness == null) ? new int[] { 0, 0, 0, 0 } : borderthickness;
@Override
public void topFieldOnKeyReleased(String input) {
controlAndSet(input, 1);
}
@Override
public void rightFieldOnKeyReleased(String input) {
controlAndSet(input, 2);
}
@Override
public void leftFieldOnKeyReleased(String input) {
controlAndSet(input, 0);
}
@Override
public void bottomFieldOnKeyReleased(String input) {
controlAndSet(input, 3);
}
private void controlAndSet(String s, int index) {
int i = FAILURE;
if (s != null) {
try {
i = Integer.parseInt(s);
} catch (NumberFormatException e) {
i = FAILURE;
}
}
if (i == FAILURE) {
ButtonChangesMenu.this.skin.setCommandButtonBorderthickness(null);
} else {
this.tmp[index] = i;
ButtonChangesMenu.this.skin.setCommandButtonBorderthickness(this.tmp);
}
}
@Override
public int[] reset() {
ButtonChangesMenu.this.skin.setCommandButtonBorderthickness(null);
this.tmp = ButtonChangesMenu.this.skin.getCommandButtonBorderthickness();
return this.tmp;
}
});
// size
int[] size = new int[] { this.skin.getCommandButtonWidth(), this.skin.getCommandButtonHeight() };
this.comBtn.add(new SizeField(size, 3, bg, strSizeFieldTitle + "(" + strMinSize + ")", true) {
private final long serialVersionUID = 1L;
@Override
public void widthOnKeyReleased(String input) {
if (!ButtonChangesMenu.this.skin.setCommandButtonMinWidth(parseInt(input))) {
updateWidthfieldColor(Color.RED);
}
}
@Override
public void heightOnKeyReleased(String input) {
if (!ButtonChangesMenu.this.skin.setCommandButtonMinHeight(parseInt(input))) {
updateHeightfieldColor(Color.RED);
}
}
@Override
public void resetOnClick() {
ButtonChangesMenu.this.skin.setCommandButtonMinWidth(FAILURE);
ButtonChangesMenu.this.skin.setCommandButtonMinHeight(FAILURE);
update(ButtonChangesMenu.this.skin.getCommandButtonWidth(), ButtonChangesMenu.this.skin.getCommandButtonHeight());
}
});
// margin
final int[] margin = this.skin.getCommandButtonMargin();
this.comBtn.add(new MarginField(margin, bg, strMarginFieldTitle) {
private final long serialVersionUID = 1L;
private int[] tmp = (margin == null) ? new int[] { 0, 0, 0, 0 } : margin;
@Override
public void topFieldOnKeyReleased(String input) {
controlAndSet(input, 1);
}
@Override
public void rightFieldOnKeyReleased(String input) {
controlAndSet(input, 2);
}
@Override
public void leftFieldOnKeyReleased(String input) {
controlAndSet(input, 0);
}
@Override
public void bottomFieldOnKeyReleased(String input) {
controlAndSet(input, 3);
}
private void controlAndSet(String s, int index) {
int i = FAILURE;
if (s != null) {
try {
i = Integer.parseInt(s);
} catch (NumberFormatException e) {
i = FAILURE;
}
}
if (i == FAILURE) {
ButtonChangesMenu.this.skin.setCommandButtonMargin(null);
} else {
this.tmp[index] = i;
ButtonChangesMenu.this.skin.setCommandButtonMargin(this.tmp);
}
}
@Override
public int[] reset() {
ButtonChangesMenu.this.skin.setCommandButtonMargin(null);
this.tmp = ButtonChangesMenu.this.skin.getCommandButtonMargin();
return this.tmp;
}
});
// padding
final int[] padding = this.skin.getCommandButtonPadding();
this.comBtn.add(new PaddingField(padding, bg, strPaddingFieldTitle) {
private final long serialVersionUID = 1L;
private int[] tmp = (padding == null) ? new int[] { 0, 0, 0, 0 } : padding;
@Override
public void topFieldOnKeyReleased(String input) {
controlAndSet(input, 1);
}
@Override
public void rightFieldOnKeyReleased(String input) {
controlAndSet(input, 2);
}
@Override
public void leftFieldOnKeyReleased(String input) {
controlAndSet(input, 0);
}
@Override
public void bottomFieldOnKeyReleased(String input) {
controlAndSet(input, 3);
}
private void controlAndSet(String s, int index) {
int i = FAILURE;
try {
i = Integer.parseInt(s);
} catch (NumberFormatException e) {
i = FAILURE;
}
if (i == FAILURE) {
ButtonChangesMenu.this.skin.setCommandButtonPadding(null);
} else {
this.tmp[index] = i;
ButtonChangesMenu.this.skin.setCommandButtonPadding(this.tmp);
}
}
@Override
public int[] reset() {
ButtonChangesMenu.this.skin.setCommandButtonPadding(null);
this.tmp = ButtonChangesMenu.this.skin.getCommandButtonPadding();
return this.tmp;
}
});
// checkbox
boolean b = this.skin.getCommandButtonArrowpositionIsRight();
this.comBtn.add(new CheckField(b, bg, strComSymbolRightTitle, strComSymRight) {
private final long serialVersionUID = 1L;
@Override
public void btnPressed(boolean selected) {
ButtonChangesMenu.this.skin.setCommandButtonArrowpositionOnRight(selected);
}
});
}
/*
* blue generic btn, used as background for symbols and text, like cancel, locale and the misc options btn.
*/
private void initStdBtn(Color bg) {
this.stdBtn = new JPanel();
this.stdBtn.setBackground(bg);
this.stdBtn.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
// image
{
Path initialValue = this.skin.getImgPath_StandardBtn(Imagetype.DEFAULT);
JPanel defaultImage = new ImageField(initialValue, bg, true) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_StandardBtn(file.toPath(), Imagetype.DEFAULT);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_StandardBtn(Imagetype.DEFAULT), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_StandardBtn(null, Imagetype.DEFAULT);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_StandardBtn(Imagetype.DEFAULT), true);
}
}
};
initialValue = this.skin.getImgPath_StandardBtn(Imagetype.MOUSEFOCUS);
JPanel focusImage = new ImageField(initialValue, bg, true) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_StandardBtn(file.toPath(), Imagetype.MOUSEFOCUS_KEYFOCUS);
ButtonChangesMenu.this.skin.setImgPath_StandardBtn(file.toPath(), Imagetype.MOUSEFOCUS);
ButtonChangesMenu.this.skin.setImgPath_StandardBtn(file.toPath(), Imagetype.KEYFOCUS);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_StandardBtn(Imagetype.MOUSEFOCUS), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_StandardBtn(null, Imagetype.MOUSEFOCUS_KEYFOCUS);
ButtonChangesMenu.this.skin.setImgPath_StandardBtn(null, Imagetype.MOUSEFOCUS);
ButtonChangesMenu.this.skin.setImgPath_StandardBtn(null, Imagetype.KEYFOCUS);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_StandardBtn(Imagetype.MOUSEFOCUS), true);
}
}
};
initialValue = this.skin.getImgPath_StandardBtn(Imagetype.PRESSED);
JPanel pressedImage = new ImageField(initialValue, bg, true) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_StandardBtn(file.toPath(), Imagetype.PRESSED);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_StandardBtn(Imagetype.PRESSED), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_StandardBtn(null, Imagetype.PRESSED);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_StandardBtn(Imagetype.PRESSED), true);
}
}
};
JTabbedPane pane = createTabbedPane(bg, strImgFieldTitle, defaultImage, focusImage, pressedImage);
pane.setTitleAt(0, strImageDefault);
pane.setTitleAt(1, strImageFocus);
pane.setTitleAt(2, strImagePressed);
this.stdBtn.add(pane);
}
// border
final int[] borderthickness = this.skin.getStandardButtonBorderthickness();
this.stdBtn.add(new BorderField(borderthickness, bg, strBorderFieldTitle) {
private final long serialVersionUID = 1L;
private int[] tmp = (borderthickness == null) ? new int[] { 0, 0, 0, 0 } : borderthickness;
@Override
public void topFieldOnKeyReleased(String input) {
controlAndSet(input, 1);
}
@Override
public void rightFieldOnKeyReleased(String input) {
controlAndSet(input, 2);
}
@Override
public void leftFieldOnKeyReleased(String input) {
controlAndSet(input, 0);
}
@Override
public void bottomFieldOnKeyReleased(String input) {
controlAndSet(input, 3);
}
private void controlAndSet(String s, int index) {
int i = FAILURE;
if (s != null) {
try {
i = Integer.parseInt(s);
} catch (NumberFormatException e) {
i = FAILURE;
}
}
if (i == FAILURE) {
ButtonChangesMenu.this.skin.setStandardButtonBorderthickness(null);
} else {
this.tmp[index] = i;
ButtonChangesMenu.this.skin.setStandardButtonBorderthickness(this.tmp);
}
}
@Override
public int[] reset() {
ButtonChangesMenu.this.skin.setStandardButtonBorderthickness(null);
this.tmp = ButtonChangesMenu.this.skin.getStandardButtonBorderthickness();
return this.tmp;
}
});
// size
int[] size = new int[] { this.skin.getStandardButtonWidth(), this.skin.getStandardButtonHeight() };
this.stdBtn.add(new SizeField(size, 3, bg, strSizeFieldTitle + "(" + strMinSize + ")", true) {
private final long serialVersionUID = 1L;
@Override
public void widthOnKeyReleased(String input) {
if (!ButtonChangesMenu.this.skin.setStandardButtonMinWidth(parseInt(input))) {
updateWidthfieldColor(Color.RED);
}
}
@Override
public void heightOnKeyReleased(String input) {
if (!ButtonChangesMenu.this.skin.setStandardButtonMinHeight(parseInt(input))) {
updateHeightfieldColor(Color.RED);
}
}
@Override
public void resetOnClick() {
ButtonChangesMenu.this.skin.setStandardButtonMinWidth(FAILURE);
ButtonChangesMenu.this.skin.setStandardButtonMinHeight(FAILURE);
update(ButtonChangesMenu.this.skin.getStandardButtonWidth(), ButtonChangesMenu.this.skin.getStandardButtonHeight());
}
});
// margin
final int[] margin = this.skin.getStandardButtonMargin();
this.stdBtn.add(new MarginField(margin, bg, strMarginFieldTitle) {
private final long serialVersionUID = 1L;
private int[] tmp = (margin == null) ? new int[] { 0, 0, 0, 0 } : margin;
@Override
public void topFieldOnKeyReleased(String input) {
controlAndSet(input, 1);
}
@Override
public void rightFieldOnKeyReleased(String input) {
controlAndSet(input, 2);
}
@Override
public void leftFieldOnKeyReleased(String input) {
controlAndSet(input, 0);
}
@Override
public void bottomFieldOnKeyReleased(String input) {
controlAndSet(input, 3);
}
private void controlAndSet(String s, int index) {
int i = FAILURE;
if (s != null) {
try {
i = Integer.parseInt(s);
} catch (NumberFormatException e) {
i = FAILURE;
}
}
if (i == FAILURE) {
ButtonChangesMenu.this.skin.setStandardButtonMargin(null);
} else {
this.tmp[index] = i;
ButtonChangesMenu.this.skin.setStandardButtonMargin(this.tmp);
}
}
@Override
public int[] reset() {
ButtonChangesMenu.this.skin.setStandardButtonMargin(null);
this.tmp = ButtonChangesMenu.this.skin.getStandardButtonMargin();
return this.tmp;
}
});
// padding
final int[] padding = this.skin.getStandardButtonPadding();
this.stdBtn.add(new PaddingField(padding, bg, strPaddingFieldTitle) {
private final long serialVersionUID = 1L;
private int[] tmp = (padding == null) ? new int[] { 0, 0, 0, 0 } : padding;
@Override
public void topFieldOnKeyReleased(String input) {
controlAndSet(input, 1);
}
@Override
public void rightFieldOnKeyReleased(String input) {
controlAndSet(input, 2);
}
@Override
public void leftFieldOnKeyReleased(String input) {
controlAndSet(input, 0);
}
@Override
public void bottomFieldOnKeyReleased(String input) {
controlAndSet(input, 3);
}
private void controlAndSet(String s, int index) {
int i = FAILURE;
try {
i = Integer.parseInt(s);
} catch (NumberFormatException e) {
i = FAILURE;
}
if (i == FAILURE) {
ButtonChangesMenu.this.skin.setStandardButtonPadding(null);
} else {
this.tmp[index] = i;
ButtonChangesMenu.this.skin.setStandardButtonPadding(this.tmp);
}
}
@Override
public int[] reset() {
ButtonChangesMenu.this.skin.setStandardButtonPadding(null);
this.tmp = ButtonChangesMenu.this.skin.getStandardButtonPadding();
return this.tmp;
}
});
// position
Position pos = this.skin.getStandardButtonPosition();
boolean[] active = { false, false, false, true, true, true, false, false, false };
this.stdBtn.add(new PositionField(pos, active, bg, strPosFieldTitle) {
private final long serialVersionUID = 1L;
@Override
public void toprightOnPressed() {
}
@Override
public void topleftOnPressed() {
}
@Override
public void topOnPressed() {
}
@Override
public void centerrightOnPressed() {
ButtonChangesMenu.this.skin.setStandardButtonPosition(Position.RIGHT);
}
@Override
public void centerleftOnPressed() {
ButtonChangesMenu.this.skin.setStandardButtonPosition(Position.LEFT);
}
@Override
public void centerOnPressed() {
ButtonChangesMenu.this.skin.setStandardButtonPosition(Position.CENTER);
}
@Override
public void bottomrightOnPressed() {
}
@Override
public void bottomleftOnPressed() {
}
@Override
public void bottomOnPressed() {
}
});
}
/*
*
*/
private void initPwdBtn(Color bg) {
this.pwdBtn = new JPanel();
this.pwdBtn.setBackground(bg);
this.pwdBtn.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
// image
final JTabbedPane imagepane;
{
Path initialValue = this.skin.getImgPath_PWBtn(Imagetype.DEFAULT);
JPanel defaultImage = new ImageField(initialValue, bg, false) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_PWBtn(file.toPath(), Imagetype.DEFAULT);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_PWBtn(Imagetype.DEFAULT), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_PWBtn(null, Imagetype.DEFAULT);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_PWBtn(Imagetype.DEFAULT), true);
}
}
};
initialValue = this.skin.getImgPath_PWBtn(Imagetype.MOUSEFOCUS_KEYFOCUS);
JPanel focusImage = new ImageField(initialValue, bg, false) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_PWBtn(file.toPath(), Imagetype.MOUSEFOCUS_KEYFOCUS);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_PWBtn(Imagetype.MOUSEFOCUS_KEYFOCUS), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_PWBtn(null, Imagetype.MOUSEFOCUS_KEYFOCUS);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_PWBtn(Imagetype.MOUSEFOCUS_KEYFOCUS), true);
}
}
};
initialValue = this.skin.getImgPath_PWBtn(Imagetype.PRESSED);
JPanel pressedImage = new ImageField(initialValue, bg, false) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_PWBtn(file.toPath(), Imagetype.PRESSED);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_PWBtn(Imagetype.PRESSED), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_PWBtn(null, Imagetype.PRESSED);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_PWBtn(Imagetype.PRESSED), true);
}
}
};
imagepane = createTabbedPane(bg, strImgFieldTitle, defaultImage, focusImage, pressedImage);
imagepane.setTitleAt(0, strImageDefault);
imagepane.setTitleAt(1, strImageFocus);
imagepane.setTitleAt(2, strImagePressed);
}
// size
int[] size = new int[] { this.skin.getPasswordButtonWidth(), this.skin.getPasswordButtonHeight() };
final SizeField sizefield = new SizeField(size, 3, bg, strSizeFieldTitle, true) {
private final long serialVersionUID = 1L;
@Override
public void widthOnKeyReleased(String input) {
if (!ButtonChangesMenu.this.skin.setPasswordButtonWidth(parseInt(input))) {
updateWidthfieldColor(Color.RED);
}
}
@Override
public void heightOnKeyReleased(String input) {
if (!ButtonChangesMenu.this.skin.setPasswordButtonHeight(parseInt(input))) {
updateHeightfieldColor(Color.RED);
}
}
@Override
public void resetOnClick() {
ButtonChangesMenu.this.skin.setPasswordButtonWidth(FAILURE);
ButtonChangesMenu.this.skin.setPasswordButtonHeight(FAILURE);
update(ButtonChangesMenu.this.skin.getPasswordButtonWidth(), ButtonChangesMenu.this.skin.getPasswordButtonHeight());
}
};
// border
final int[] borderthickness = this.skin.getPasswordButtonBorderthickness();
final BorderField borderfield = new BorderField(this.skin.getPasswordButtonBorderthickness(), bg, strBorderFieldTitle) {
private final long serialVersionUID = 1L;
private int[] tmp = (borderthickness == null) ? new int[] { 0, 0, 0, 0 } : borderthickness;
@Override
public void topFieldOnKeyReleased(String input) {
controlAndSet(input, 1);
}
@Override
public void rightFieldOnKeyReleased(String input) {
controlAndSet(input, 2);
}
@Override
public void leftFieldOnKeyReleased(String input) {
controlAndSet(input, 0);
}
@Override
public void bottomFieldOnKeyReleased(String input) {
controlAndSet(input, 3);
}
private void controlAndSet(String s, int index) {
int i = FAILURE;
if (s != null) {
try {
i = Integer.parseInt(s);
} catch (NumberFormatException e) {
i = FAILURE;
}
}
if (i == FAILURE) {
ButtonChangesMenu.this.skin.setPasswordButtonBorderthickness(null);
} else {
this.tmp[index] = i;
ButtonChangesMenu.this.skin.setPasswordButtonBorderthickness(this.tmp);
}
}
@Override
public int[] reset() {
ButtonChangesMenu.this.skin.setPasswordButtonBorderthickness(null);
this.tmp = ButtonChangesMenu.this.skin.getPasswordButtonBorderthickness();
return this.tmp;
}
};
// margin
final int[] margin = this.skin.getPasswordButtonMargin();
final MarginField marginfield = new MarginField(margin, bg, strMarginFieldTitle) {
private final long serialVersionUID = 1L;
private int[] tmp = (margin == null) ? new int[] { 0, 0, 0, 0 } : margin;
@Override
public void topFieldOnKeyReleased(String input) {
controlAndSet(input, 1);
}
@Override
public void rightFieldOnKeyReleased(String input) {
controlAndSet(input, 2);
}
@Override
public void leftFieldOnKeyReleased(String input) {
controlAndSet(input, 0);
}
@Override
public void bottomFieldOnKeyReleased(String input) {
controlAndSet(input, 3);
}
private void controlAndSet(String s, int index) {
int i = FAILURE;
if (s != null) {
try {
i = Integer.parseInt(s);
} catch (NumberFormatException e) {
i = FAILURE;
}
}
if (i == FAILURE) {
ButtonChangesMenu.this.skin.setPasswordButtonMargin(null);
} else {
this.tmp[index] = i;
ButtonChangesMenu.this.skin.setPasswordButtonMargin(this.tmp);
}
}
@Override
public int[] reset() {
ButtonChangesMenu.this.skin.setPasswordButtonMargin(null);
this.tmp = ButtonChangesMenu.this.skin.getPasswordButtonMargin();
return this.tmp;
}
};
// checkbox
boolean hidden = (this.skin.getPasswordButtonWidth() == 0) || (this.skin.getPasswordButtonHeight() == 0);
this.pwdBtn.add(new CheckField(hidden, bg, strHideFieldTitle, strHide) {
private final long serialVersionUID = 1L;
@Override
public void btnPressed(boolean selected) {
if (selected) {
ButtonChangesMenu.this.skin.setPasswordButtonWidth(0);
ButtonChangesMenu.this.skin.setPasswordButtonHeight(0);
imagepane.setVisible(false);
sizefield.setVisible(false);
borderfield.setVisible(false);
marginfield.setVisible(false);
} else {
ButtonChangesMenu.this.skin.setPasswordButtonWidth(-1);
ButtonChangesMenu.this.skin.setPasswordButtonHeight(-1);
sizefield.update(ButtonChangesMenu.this.skin.getPasswordButtonWidth(),
ButtonChangesMenu.this.skin.getPasswordButtonHeight());
imagepane.setVisible(true);
sizefield.setVisible(true);
borderfield.setVisible(true);
marginfield.setVisible(true);
}
}
});
if (hidden) {
imagepane.setVisible(false);
sizefield.setVisible(false);
borderfield.setVisible(false);
marginfield.setVisible(false);
}
this.pwdBtn.add(imagepane);
this.pwdBtn.add(sizefield);
this.pwdBtn.add(borderfield);
this.pwdBtn.add(marginfield);
}
/*
*
*/
private void initShutdFrame(Color bg) {
this.shutdFrame = new JPanel();
this.shutdFrame.setBackground(bg);
this.shutdFrame.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
// position
Position pos = this.skin.getShutdownframePosition();
boolean[] active = { false, true, false, true, false, true, false, true, false };
this.shutdFrame.add(new PositionField(pos, active, bg, strPosFieldTitle) {
private final long serialVersionUID = 1L;
@Override
public void toprightOnPressed() {
}
@Override
public void topleftOnPressed() {
}
@Override
public void topOnPressed() {
ButtonChangesMenu.this.skin.setShutdownframePosition(Position.TOP);
}
@Override
public void centerrightOnPressed() {
ButtonChangesMenu.this.skin.setShutdownframePosition(Position.RIGHT);
}
@Override
public void centerleftOnPressed() {
ButtonChangesMenu.this.skin.setShutdownframePosition(Position.LEFT);
}
@Override
public void centerOnPressed() {
}
@Override
public void bottomrightOnPressed() {
}
@Override
public void bottomleftOnPressed() {
}
@Override
public void bottomOnPressed() {
ButtonChangesMenu.this.skin.setShutdownframePosition(Position.BOTTOM);
}
});
}
/*
*
*/
private void initShutdBtn(Color bg) {
this.shutdBtn = new JPanel();
this.shutdBtn.setBackground(bg);
this.shutdBtn.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
// image
final JTabbedPane pane;
{
Path initialValue = this.skin.getImgPath_ShutdownBtn(Imagetype.DEFAULT);
JPanel defaultImage = new ImageField(initialValue, bg, true) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_ShutdownBtn(file.toPath(), Imagetype.DEFAULT);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownBtn(Imagetype.DEFAULT), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_ShutdownBtn(null, Imagetype.DEFAULT);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownBtn(Imagetype.DEFAULT), true);
}
}
};
initialValue = this.skin.getImgPath_ShutdownBtn(Imagetype.MOUSEFOCUS);
JPanel focusImage = new ImageField(initialValue, bg, true) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_ShutdownBtn(file.toPath(), Imagetype.MOUSEFOCUS_KEYFOCUS);
ButtonChangesMenu.this.skin.setImgPath_ShutdownBtn(file.toPath(), Imagetype.MOUSEFOCUS);
ButtonChangesMenu.this.skin.setImgPath_ShutdownBtn(file.toPath(), Imagetype.KEYFOCUS);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownBtn(Imagetype.MOUSEFOCUS), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_ShutdownBtn(null, Imagetype.MOUSEFOCUS_KEYFOCUS);
ButtonChangesMenu.this.skin.setImgPath_ShutdownBtn(null, Imagetype.MOUSEFOCUS);
ButtonChangesMenu.this.skin.setImgPath_ShutdownBtn(null, Imagetype.KEYFOCUS);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownBtn(Imagetype.MOUSEFOCUS), true);
}
}
};
initialValue = this.skin.getImgPath_ShutdownBtn(Imagetype.PRESSED);
JPanel pressedImage = new ImageField(initialValue, bg, true) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_ShutdownBtn(file.toPath(), Imagetype.PRESSED);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownBtn(Imagetype.PRESSED), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_ShutdownBtn(null, Imagetype.PRESSED);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownBtn(Imagetype.PRESSED), true);
}
}
};
pane = createTabbedPane(bg, strImgFieldTitle, defaultImage, focusImage, pressedImage);
pane.setTitleAt(0, strImageDefault);
pane.setTitleAt(1, strImageFocus);
pane.setTitleAt(2, strImagePressed);
this.shutdBtn.add(pane);
}
// border
final int[] borderthickness = this.skin.getShutdownButtonBorderthickness();
final BorderField borderfield = new BorderField(borderthickness, bg, strBorderFieldTitle) {
private final long serialVersionUID = 1L;
private int[] tmp = (borderthickness == null) ? new int[] { 0, 0, 0, 0 } : borderthickness;
@Override
public void topFieldOnKeyReleased(String input) {
controlAndSet(input, 1);
}
@Override
public void rightFieldOnKeyReleased(String input) {
controlAndSet(input, 2);
}
@Override
public void leftFieldOnKeyReleased(String input) {
controlAndSet(input, 0);
}
@Override
public void bottomFieldOnKeyReleased(String input) {
controlAndSet(input, 3);
}
private void controlAndSet(String s, int index) {
int i = FAILURE;
if (s != null) {
try {
i = Integer.parseInt(s);
} catch (NumberFormatException e) {
i = FAILURE;
}
}
if (i == FAILURE) {
ButtonChangesMenu.this.skin.setShutdownButtonBorderthickness(null);
} else {
this.tmp[index] = i;
ButtonChangesMenu.this.skin.setShutdownButtonBorderthickness(this.tmp);
}
}
@Override
public int[] reset() {
ButtonChangesMenu.this.skin.setShutdownButtonBorderthickness(null);
this.tmp = ButtonChangesMenu.this.skin.getShutdownButtonBorderthickness();
return this.tmp;
}
};
// margin
final int[] margin = this.skin.getShutdownButtonMargin();
final MarginField marginfield = new MarginField(margin, bg, strMarginFieldTitle) {
private final long serialVersionUID = 1L;
private int[] tmp = (margin == null) ? new int[] { 0, 0, 0, 0 } : margin;
@Override
public void topFieldOnKeyReleased(String input) {
controlAndSet(input, 1);
}
@Override
public void rightFieldOnKeyReleased(String input) {
controlAndSet(input, 2);
}
@Override
public void leftFieldOnKeyReleased(String input) {
controlAndSet(input, 0);
}
@Override
public void bottomFieldOnKeyReleased(String input) {
controlAndSet(input, 3);
}
private void controlAndSet(String s, int index) {
int i = FAILURE;
if (s != null) {
try {
i = Integer.parseInt(s);
} catch (NumberFormatException e) {
i = FAILURE;
}
}
if (i == FAILURE) {
ButtonChangesMenu.this.skin.setShutdownButtonMargin(null);
} else {
this.tmp[index] = i;
ButtonChangesMenu.this.skin.setShutdownButtonMargin(this.tmp);
}
}
@Override
public int[] reset() {
ButtonChangesMenu.this.skin.setShutdownButtonMargin(null);
this.tmp = ButtonChangesMenu.this.skin.getShutdownButtonMargin();
return this.tmp;
}
};
// position
Position pos = this.skin.getShutdownButtonPosition();
boolean[] active = { false, true, false, true, false, true, false, true, false };
final PositionField posfield = new PositionField(pos, active, bg, strPosFieldTitle) {
private final long serialVersionUID = 1L;
@Override
public void toprightOnPressed() {
}
@Override
public void topleftOnPressed() {
}
@Override
public void topOnPressed() {
ButtonChangesMenu.this.skin.setShutdownButtonPosition(Position.TOP);
}
@Override
public void centerrightOnPressed() {
ButtonChangesMenu.this.skin.setShutdownButtonPosition(Position.RIGHT);
}
@Override
public void centerleftOnPressed() {
ButtonChangesMenu.this.skin.setShutdownButtonPosition(Position.LEFT);
}
@Override
public void centerOnPressed() {
}
@Override
public void bottomrightOnPressed() {
}
@Override
public void bottomleftOnPressed() {
}
@Override
public void bottomOnPressed() {
ButtonChangesMenu.this.skin.setShutdownButtonPosition(Position.BOTTOM);
}
};
// size
int[] size = new int[] { this.skin.getShutdownButtonWidth(), this.skin.getShutdownButtonHeight() };
final SizeField sizefield = new SizeField(size, 3, bg, strSizeFieldTitle, true) {
private final long serialVersionUID = 1L;
@Override
public void widthOnKeyReleased(String input) {
if (!ButtonChangesMenu.this.skin.setShutdownButtonWidth(parseInt(input))) {
updateWidthfieldColor(Color.RED);
}
}
@Override
public void heightOnKeyReleased(String input) {
if (!ButtonChangesMenu.this.skin.setShutdownButtonHeight(parseInt(input))) {
updateHeightfieldColor(Color.RED);
}
}
@Override
public void resetOnClick() {
ButtonChangesMenu.this.skin.setShutdownButtonWidth(FAILURE);
ButtonChangesMenu.this.skin.setShutdownButtonHeight(FAILURE);
update(ButtonChangesMenu.this.skin.getShutdownButtonWidth(), ButtonChangesMenu.this.skin.getShutdownButtonHeight());
}
};
// image
Path initialValue = this.skin.getImgPath_ShutdownSym();
final ImageField sym = new ImageField(initialValue, bg, strImgFieldTitle + "(" + strShdSym + ")", false) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_ShutdownSym(file.toPath());
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownSym(), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_ShutdownSym(null);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownSym(), true);
}
}
};
// image
initialValue = this.skin.getImgPath_ShutdownUpdateSym();
final ImageField symUpd = new ImageField(initialValue, bg, strImgFieldTitle + "(" + strShdUpdateSym + ")", false) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_ShutdownUpdateSym(file.toPath());
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownUpdateSym(), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_ShutdownUpdateSym(null);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownUpdateSym(), true);
}
}
};
// Content
final ContentField contentfield = new ContentField(this.skin.getShutdownButtonContent(), bg, strContentFieldTitle) {
private final long serialVersionUID = 1L;
@Override
public void contentUpdate(String input) {
if ((input == null) || input.equals("")) {
ButtonChangesMenu.this.skin.setShutdownButtonContent(null);
sym.setVisible(true);
symUpd.setVisible(true);
} else {
ButtonChangesMenu.this.skin.setShutdownButtonContent(input);
sym.setVisible(false);
symUpd.setVisible(false);
}
}
};
// checkbox
boolean hidden = (this.skin.getShutdownButtonWidth() == 0) || (this.skin.getShutdownButtonHeight() == 0);
this.shutdBtn.add(new CheckField(hidden, bg, strHideFieldTitle, strHide) {
private final long serialVersionUID = 1L;
@Override
public void btnPressed(boolean selected) {
if (selected) {
ButtonChangesMenu.this.skin.setShutdownButtonWidth(0);
ButtonChangesMenu.this.skin.setShutdownButtonHeight(0);
pane.setVisible(false);
borderfield.setVisible(false);
marginfield.setVisible(false);
posfield.setVisible(false);
sizefield.setVisible(false);
contentfield.setVisible(false);
sym.setVisible(false);
symUpd.setVisible(false);
} else {
ButtonChangesMenu.this.skin.setShutdownButtonWidth(-1);
ButtonChangesMenu.this.skin.setShutdownButtonHeight(-1);
sizefield.update(ButtonChangesMenu.this.skin.getShutdownButtonWidth(),
ButtonChangesMenu.this.skin.getShutdownButtonHeight());
pane.setVisible(true);
borderfield.setVisible(true);
marginfield.setVisible(true);
posfield.setVisible(true);
sizefield.setVisible(true);
contentfield.setVisible(true);
sym.setVisible(true);
symUpd.setVisible(true);
}
}
});
this.shutdBtn.add(pane);
this.shutdBtn.add(borderfield);
this.shutdBtn.add(marginfield);
this.shutdBtn.add(posfield);
this.shutdBtn.add(sizefield);
this.shutdBtn.add(contentfield);
this.shutdBtn.add(sym);
this.shutdBtn.add(symUpd);
if (hidden) {
pane.setVisible(false);
borderfield.setVisible(false);
marginfield.setVisible(false);
posfield.setVisible(false);
sizefield.setVisible(false);
contentfield.setVisible(false);
sym.setVisible(false);
symUpd.setVisible(false);
}
if ((this.skin.getShutdownButtonContent() != null) && !this.skin.getShutdownButtonContent().equals("")) {
sym.setVisible(false);
symUpd.setVisible(false);
}
}
/*
*
*/
private void initShutdMenu(Color bg) {
this.shutdMenu = new JPanel();
this.shutdMenu.setBackground(bg);
this.shutdMenu.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
// image
final JTabbedPane pane;
{
Path initialValue = this.skin.getImgPath_ShutdownMenu(Imagetype.DEFAULT);
JPanel defaultImage = new ImageField(initialValue, bg, true) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_ShutdownMenu(file.toPath(), Imagetype.DEFAULT);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownMenu(Imagetype.DEFAULT), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_ShutdownMenu(null, Imagetype.DEFAULT);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownMenu(Imagetype.DEFAULT), true);
}
}
};
initialValue = this.skin.getImgPath_ShutdownMenu(Imagetype.MOUSEFOCUS);
JPanel focusImage = new ImageField(initialValue, bg, true) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_ShutdownMenu(file.toPath(), Imagetype.MOUSEFOCUS_KEYFOCUS);
ButtonChangesMenu.this.skin.setImgPath_ShutdownMenu(file.toPath(), Imagetype.MOUSEFOCUS);
ButtonChangesMenu.this.skin.setImgPath_ShutdownMenu(file.toPath(), Imagetype.KEYFOCUS);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownMenu(Imagetype.MOUSEFOCUS), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_ShutdownMenu(null, Imagetype.MOUSEFOCUS_KEYFOCUS);
ButtonChangesMenu.this.skin.setImgPath_ShutdownMenu(null, Imagetype.MOUSEFOCUS);
ButtonChangesMenu.this.skin.setImgPath_ShutdownMenu(null, Imagetype.KEYFOCUS);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownMenu(Imagetype.MOUSEFOCUS), true);
}
}
};
initialValue = this.skin.getImgPath_ShutdownMenu(Imagetype.PRESSED);
JPanel pressedImage = new ImageField(initialValue, bg, true) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_ShutdownMenu(file.toPath(), Imagetype.PRESSED);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownMenu(Imagetype.PRESSED), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_ShutdownMenu(null, Imagetype.PRESSED);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownMenu(Imagetype.PRESSED), true);
}
}
};
pane = createTabbedPane(bg, strImgFieldTitle, defaultImage, focusImage, pressedImage);
pane.setTitleAt(0, strImageDefault);
pane.setTitleAt(1, strImageFocus);
pane.setTitleAt(2, strImagePressed);
}
// border
final int[] borderthickness = this.skin.getShutdownmenuButtonBorderthickness();
final BorderField borderfield = new BorderField(borderthickness, bg, strBorderFieldTitle) {
private final long serialVersionUID = 1L;
private int[] tmp = (borderthickness == null) ? new int[] { 0, 0, 0, 0 } : borderthickness;
@Override
public void topFieldOnKeyReleased(String input) {
controlAndSet(input, 1);
}
@Override
public void rightFieldOnKeyReleased(String input) {
controlAndSet(input, 2);
}
@Override
public void leftFieldOnKeyReleased(String input) {
controlAndSet(input, 0);
}
@Override
public void bottomFieldOnKeyReleased(String input) {
controlAndSet(input, 3);
}
private void controlAndSet(String s, int index) {
int i = FAILURE;
if (s != null) {
try {
i = Integer.parseInt(s);
} catch (NumberFormatException e) {
i = FAILURE;
}
}
if (i == FAILURE) {
ButtonChangesMenu.this.skin.setShutdownmenuButtonBorderthickness(null);
} else {
this.tmp[index] = i;
ButtonChangesMenu.this.skin.setShutdownmenuButtonBorderthickness(this.tmp);
}
}
@Override
public int[] reset() {
ButtonChangesMenu.this.skin.setShutdownmenuButtonBorderthickness(null);
this.tmp = ButtonChangesMenu.this.skin.getShutdownmenuButtonBorderthickness();
return this.tmp;
}
};
// margin
final int[] margin = this.skin.getShutdownmenuButtonMargin();
final MarginField marginfield = new MarginField(margin, bg, strMarginFieldTitle) {
private final long serialVersionUID = 1L;
private int[] tmp = (margin == null) ? new int[] { 0, 0, 0, 0 } : margin;
@Override
public void topFieldOnKeyReleased(String input) {
controlAndSet(input, 1);
}
@Override
public void rightFieldOnKeyReleased(String input) {
controlAndSet(input, 2);
}
@Override
public void leftFieldOnKeyReleased(String input) {
controlAndSet(input, 0);
}
@Override
public void bottomFieldOnKeyReleased(String input) {
controlAndSet(input, 3);
}
private void controlAndSet(String s, int index) {
int i = FAILURE;
try {
i = Integer.parseInt(s);
} catch (NumberFormatException e) {
i = FAILURE;
}
if (i == FAILURE) {
ButtonChangesMenu.this.skin.setShutdownmenuButtonMargin(null);
} else {
this.tmp[index] = i;
ButtonChangesMenu.this.skin.setShutdownmenuButtonMargin(this.tmp);
}
}
@Override
public int[] reset() {
ButtonChangesMenu.this.skin.setShutdownmenuButtonMargin(null);
this.tmp = ButtonChangesMenu.this.skin.getShutdownmenuButtonMargin();
return this.tmp;
}
};
// size
int[] size = new int[] { this.skin.getShutdownmenuButtonWidth(), this.skin.getShutdownmenuButtonHeight() };
final SizeField sizefield = new SizeField(size, 3, bg, strSizeFieldTitle, true) {
private final long serialVersionUID = 1L;
@Override
public void widthOnKeyReleased(String input) {
if (!ButtonChangesMenu.this.skin.setShutdownmenuButtonWidth(parseInt(input))) {
updateWidthfieldColor(Color.RED);
}
}
@Override
public void heightOnKeyReleased(String input) {
if (!ButtonChangesMenu.this.skin.setShutdownmenuButtonHeight(parseInt(input))) {
updateHeightfieldColor(Color.RED);
}
}
@Override
public void resetOnClick() {
ButtonChangesMenu.this.skin.setShutdownmenuButtonWidth(FAILURE);
ButtonChangesMenu.this.skin.setShutdownmenuButtonHeight(FAILURE);
update(ButtonChangesMenu.this.skin.getShutdownmenuButtonWidth(), ButtonChangesMenu.this.skin.getShutdownmenuButtonHeight());
}
};
// image
Path initialValue = this.skin.getImgPath_ShutdownArrowSym();
final ImageField sym = new ImageField(initialValue, bg, strImgFieldTitle + "(" + strShdArrowSym + ")", false) {
private final long serialVersionUID = 1L;
@Override
public void onFileChosen(File file) {
if (file != null) {
ButtonChangesMenu.this.skin.setImgPath_ShutdownArrowSym(file.toPath());
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownArrowSym(), false);
} else {
ButtonChangesMenu.this.skin.setImgPath_ShutdownArrowSym(null);
updatePathField(ButtonChangesMenu.this.skin.getImgPath_ShutdownArrowSym(), true);
}
}
};
final ContentField contentfield = new ContentField(this.skin.getShutdownmenuButtonContent(), bg, strContentFieldTitle) {
private final long serialVersionUID = 1L;
@Override
public void contentUpdate(String input) {
if ((input == null) || input.equals("")) {
ButtonChangesMenu.this.skin.setShutdownmenuButtonContent(null);
sym.setVisible(true);
} else {
ButtonChangesMenu.this.skin.setShutdownmenuButtonContent(input);
sym.setVisible(false);
}
}
};
// checkbox
boolean hidden = (this.skin.getShutdownmenuButtonWidth() == 0) || (this.skin.getShutdownmenuButtonHeight() == 0);
this.shutdMenu.add(new CheckField(hidden, bg, strHideFieldTitle, strHide) {
private final long serialVersionUID = 1L;
@Override
public void btnPressed(boolean selected) {
if (selected) {
ButtonChangesMenu.this.skin.setShutdownmenuButtonWidth(0);
ButtonChangesMenu.this.skin.setShutdownmenuButtonHeight(0);
pane.setVisible(false);
borderfield.setVisible(false);
marginfield.setVisible(false);
sizefield.setVisible(false);
contentfield.setVisible(false);
sym.setVisible(false);
} else {
ButtonChangesMenu.this.skin.setShutdownmenuButtonWidth(-1);
ButtonChangesMenu.this.skin.setShutdownmenuButtonHeight(-1);
sizefield.update(ButtonChangesMenu.this.skin.getShutdownmenuButtonWidth(),
ButtonChangesMenu.this.skin.getShutdownmenuButtonHeight());
pane.setVisible(true);
borderfield.setVisible(true);
marginfield.setVisible(true);
sizefield.setVisible(true);
contentfield.setVisible(true);
sym.setVisible(true);
}
}
});
this.shutdMenu.add(pane);
this.shutdMenu.add(borderfield);
this.shutdMenu.add(marginfield);
this.shutdMenu.add(sizefield);
this.shutdMenu.add(contentfield);
this.shutdMenu.add(sym);
if (hidden) {
pane.setVisible(false);
borderfield.setVisible(false);
marginfield.setVisible(false);
sizefield.setVisible(false);
contentfield.setVisible(false);
sym.setVisible(false);
}
if ((this.skin.getShutdownmenuButtonContent() != null) && !this.skin.getShutdownmenuButtonContent().equals("")) {
sym.setVisible(false);
}
}
/*
*
*/
private void initlocaleBtn(Color bg) {
this.localeBtn = new JPanel();
this.localeBtn.setBackground(bg);
this.localeBtn.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
// position
Position pos = this.skin.getLocaleButtonPosition();
boolean[] active = { true, true, true, true, true, true, true, true, true };
final PositionField positionField = new PositionField(pos, active, bg, strPosFieldTitle) {
private final long serialVersionUID = 1L;
@Override
public void toprightOnPressed() {
ButtonChangesMenu.this.skin.setLocaleButtonPosition(Position.TOPRIGHT);
}
@Override
public void topleftOnPressed() {
ButtonChangesMenu.this.skin.setLocaleButtonPosition(Position.TOPLEFT);
}
@Override
public void topOnPressed() {
ButtonChangesMenu.this.skin.setLocaleButtonPosition(Position.TOP);
}
@Override
public void centerrightOnPressed() {
ButtonChangesMenu.this.skin.setLocaleButtonPosition(Position.RIGHT);
}
@Override
public void centerleftOnPressed() {
ButtonChangesMenu.this.skin.setLocaleButtonPosition(Position.LEFT);
}
@Override
public void centerOnPressed() {
ButtonChangesMenu.this.skin.setLocaleButtonPosition(Position.CENTER);
}
@Override
public void bottomrightOnPressed() {
ButtonChangesMenu.this.skin.setLocaleButtonPosition(Position.BOTTOMRIGHT);
}
@Override
public void bottomleftOnPressed() {
ButtonChangesMenu.this.skin.setLocaleButtonPosition(Position.BOTTOMLEFT);
}
@Override
public void bottomOnPressed() {
ButtonChangesMenu.this.skin.setLocaleButtonPosition(Position.BOTTOM);
}
};
// padding
final int[] padding = this.skin.getLocaleButtonPadding();
final PaddingField paddingfield = new PaddingField(padding, bg, strPaddingFieldTitle) {
private final long serialVersionUID = 1L;
private int[] tmp = (padding == null) ? new int[] { 0, 0, 0, 0 } : padding;
@Override
public void topFieldOnKeyReleased(String input) {
controlAndSet(input, 1);
}
@Override
public void rightFieldOnKeyReleased(String input) {
controlAndSet(input, 2);
}
@Override
public void leftFieldOnKeyReleased(String input) {
controlAndSet(input, 0);
}
@Override
public void bottomFieldOnKeyReleased(String input) {
controlAndSet(input, 3);
}
private void controlAndSet(String s, int index) {
int i = FAILURE;
if (s != null) {
try {
i = Integer.parseInt(s);
} catch (NumberFormatException e) {
i = FAILURE;
}
}
if (i == FAILURE) {
ButtonChangesMenu.this.skin.setLocaleButtonPadding(null);
} else {
this.tmp[index] = i;
ButtonChangesMenu.this.skin.setLocaleButtonPadding(this.tmp);
}
}
@Override
public int[] reset() {
ButtonChangesMenu.this.skin.setLocaleButtonPadding(null);
this.tmp = ButtonChangesMenu.this.skin.getLocaleButtonPadding();
return this.tmp;
}
};
// checkbox
boolean hide = !this.skin.getLocaleButtonVisible();
this.localeBtn.add(new CheckField(hide, bg, strHideFieldTitle, strHide) {
private final long serialVersionUID = 1L;
@Override
public void btnPressed(boolean selected) {
ButtonChangesMenu.this.skin.setLocaleButtonVisibility(!selected);
positionField.setVisible(!selected);
paddingfield.setVisible(!selected);
}
});
if (hide) {
positionField.setVisible(false);
paddingfield.setVisible(false);
}
this.localeBtn.add(positionField);
this.localeBtn.add(paddingfield);
}
/*
*
*/
private void initMisc(Color bg) {
this.misc = new JPanel();
this.misc.setBackground(bg);
this.misc.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
// checkbox
boolean b = this.skin.getCombinedShdAcc();
this.misc.add(new CheckField(b, bg, strCombineAccShdTitle, strCombineAccShdLabel) {
private final long serialVersionUID = 1L;
@Override
public void btnPressed(boolean selected) {
ButtonChangesMenu.this.skin.setCombinedShdAcc(selected);
}
});
// position
Position pos = this.skin.getCombinedShdAccPosition();
boolean[] active = { false, true, false, true, false, true, false, true, false };
this.misc.add(new PositionField(pos, active, bg, strCombinedAccShdPosTitle) {
private final long serialVersionUID = 1L;
@Override
public void toprightOnPressed() {
}
@Override
public void topleftOnPressed() {
}
@Override
public void topOnPressed() {
ButtonChangesMenu.this.skin.setCombinedShdAcc_Position(Position.TOP);
}
@Override
public void centerrightOnPressed() {
ButtonChangesMenu.this.skin.setCombinedShdAcc_Position(Position.RIGHT);
}
@Override
public void centerleftOnPressed() {
ButtonChangesMenu.this.skin.setCombinedShdAcc_Position(Position.LEFT);
}
@Override
public void centerOnPressed() {
}
@Override
public void bottomrightOnPressed() {
}
@Override
public void bottomleftOnPressed() {
}
@Override
public void bottomOnPressed() {
ButtonChangesMenu.this.skin.setCombinedShdAcc_Position(Position.BOTTOM);
}
});
}
}