/* * ####################################################### * * Copyright (c) 2013, A. Weinberger. All rights reserved. * -------------------------------------------------------- */ package ale.view.gui.editor.menus; import java.awt.Color; import java.io.File; import java.io.IOException; import java.nio.file.Path; import javax.swing.JPanel; import javax.swing.JTabbedPane; import ale.Constants; import ale.controller.Main; import ale.model.skin.BrandingVO.Brandingsize; import ale.model.skin.SkinConstants.Animation; import ale.model.skin.SkinConstants.CommandButton; import ale.model.skin.SkinConstants.Imagetype; import ale.model.skin.SkinConstants.Position; import ale.model.skin.SkinConstants.UISizeInits; import ale.model.skin.SkinPropertiesVO; import ale.view.gui.editor.fields.AnimationField; import ale.view.gui.editor.fields.BorderField; import ale.view.gui.editor.fields.CheckField; import ale.view.gui.editor.fields.ImageField; import ale.view.gui.editor.fields.Numberfield; 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 GeneralChangesMenu extends ChangesMenus { private boolean init_1; private boolean init_2; private boolean init_3; private JPanel backgroundMenu; private JPanel brandingMenu; private JPanel windowMenu; private JPanel optionsBarMenu; private JPanel secOptMenu; private JPanel sliderMenu; private JPanel loadingstatusMenu; private SkinPropertiesVO skin; public GeneralChangesMenu(Color bg, SkinPropertiesVO skin) { this.skin = skin; initialize(bg); } private void initialize(final Color bg) { Runnable _runOne = new Runnable() { @Override public void run() { initBackgroundMenu(bg); initBrandingMenu(bg); initWindowMenu(bg); GeneralChangesMenu.this.init_1 = true; } }; Runnable _runTwo = new Runnable() { @Override public void run() { initOptionsBarMenu(bg); initSecOptMenu(bg); GeneralChangesMenu.this.init_2 = true; } }; Runnable _runThree = new Runnable() { @Override public void run() { initSliderMenu(bg); initLoadingstatusMenu(bg); GeneralChangesMenu.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.backgroundMenu = null; this.brandingMenu = null; this.windowMenu = null; this.optionsBarMenu = null; this.secOptMenu = null; this.sliderMenu = null; this.loadingstatusMenu = null; } public JPanel getBackgroundMenu() { if (!isInitialized()) { IllegalStateException e = new IllegalStateException("Call init first!"); throw e; } return this.backgroundMenu; } public JPanel getBrandingMenu() { if (!isInitialized()) { IllegalStateException e = new IllegalStateException("Call init first!"); throw e; } return this.brandingMenu; } public JPanel getWindowMenu() { if (!isInitialized()) { IllegalStateException e = new IllegalStateException("Call init first!"); throw e; } return this.windowMenu; } public JPanel getOptionBarMenu() { if (!isInitialized()) { IllegalStateException e = new IllegalStateException("Call init first!"); throw e; } return this.optionsBarMenu; } public JPanel getSecOptMenu() { if (!isInitialized()) { IllegalStateException e = new IllegalStateException("Call init first!"); throw e; } return this.secOptMenu; } public JPanel getSliderMenu() { if (!isInitialized()) { IllegalStateException e = new IllegalStateException("Call init first!"); throw e; } return this.sliderMenu; } public JPanel getLoadingstatusMenu() { if (!isInitialized()) { IllegalStateException e = new IllegalStateException("Call init first!"); throw e; } return this.loadingstatusMenu; } private void initBackgroundMenu(Color bg) { this.backgroundMenu = new JPanel(); this.backgroundMenu.setBackground(bg); this.backgroundMenu.setLayout(new VerticalLayout(5, VerticalLayout.LEFT)); // image Path initialValue = this.skin.getBackground(); ImageField imgField = new ImageField(initialValue, bg, strImgFieldTitle, false) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { try { if (file != null) { GeneralChangesMenu.this.skin.setBackground(file.toPath()); updatePathField(GeneralChangesMenu.this.skin.getBackground(), false); } else { GeneralChangesMenu.this.skin.setBackground(null); updatePathField(GeneralChangesMenu.this.skin.getBackground(), true); } } catch (IOException e) { Main.showProblemMessage(e.getMessage()); } } }; imgField.setImageFileFilter(Constants.DEFAULT_BACKGROUND_TYPE); this.backgroundMenu.add(imgField); } private void initBrandingMenu(Color bg) { this.brandingMenu = new JPanel(); this.brandingMenu.setBackground(bg); this.brandingMenu.setLayout(new VerticalLayout(5, VerticalLayout.LEFT)); // image Path path = this.skin.getBranding().getImage(Brandingsize.SMALL); final ImageField imagefield = new ImageField(path, bg, strImgFieldTitle, false) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { if (file != null) { Path tmp = file.toPath(); GeneralChangesMenu.this.skin.setBranding(tmp, tmp, tmp); updatePathField(GeneralChangesMenu.this.skin.getBranding().getImage(Brandingsize.SMALL), false); } else { GeneralChangesMenu.this.skin.setBranding(null, null, null); updatePathField(GeneralChangesMenu.this.skin.getBranding().getImage(Brandingsize.SMALL), true); } } }; // position Position pos = this.skin.getBrandingPosition(); 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() { GeneralChangesMenu.this.skin.setBrandingPosition(Position.TOP); } @Override public void centerrightOnPressed() { GeneralChangesMenu.this.skin.setBrandingPosition(Position.RIGHT); } @Override public void centerleftOnPressed() { GeneralChangesMenu.this.skin.setBrandingPosition(Position.LEFT); } @Override public void centerOnPressed() { } @Override public void bottomrightOnPressed() { } @Override public void bottomleftOnPressed() { } @Override public void bottomOnPressed() { GeneralChangesMenu.this.skin.setBrandingPosition(Position.BOTTOM); } }; // checkbox boolean hidden = this.skin.getBrandingPosition() == Position.NONE; this.brandingMenu.add(new CheckField(hidden, bg, strHideFieldTitle, strHide) { private final long serialVersionUID = 1L; @Override public void btnPressed(boolean selected) { if (selected) { GeneralChangesMenu.this.skin.setBrandingPosition(Position.NONE); posfield.setVisible(false); imagefield.setVisible(false); } else { GeneralChangesMenu.this.skin.setBrandingPosition(null); posfield.setSelectionOnPosition(GeneralChangesMenu.this.skin.getBrandingPosition()); posfield.setVisible(true); imagefield.setVisible(true); } } }); if (hidden) { posfield.setVisible(false); imagefield.setVisible(false); } this.brandingMenu.add(posfield); this.brandingMenu.add(imagefield); } private void initWindowMenu(Color bg) { this.windowMenu = new JPanel(); this.windowMenu.setBackground(bg); this.windowMenu.setLayout(new VerticalLayout(5, VerticalLayout.LEFT)); final ImageField winImage = new ImageField(this.skin.getImgPath_Window(), bg, strImgFieldTitle, false) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { if (file != null) { GeneralChangesMenu.this.skin.setImgPath_Window(file.toPath()); updatePathField(GeneralChangesMenu.this.skin.getImgPath_Window(), false); } else { GeneralChangesMenu.this.skin.setImgPath_Window(null); updatePathField(GeneralChangesMenu.this.skin.getImgPath_Window(), true); } } }; int[] size = new int[] { this.skin.getWindow_Width(), this.skin.getWindow_Height() }; final SizeField winSize = new SizeField(size, 4, bg, strSizeFieldTitle, true) { private final long serialVersionUID = 1L; @Override public void widthOnKeyReleased(String input) { if (!GeneralChangesMenu.this.skin.setWindowWidth(parseInt(input))) { updateWidthfieldColor(Color.RED); } } @Override public void heightOnKeyReleased(String input) { if (!GeneralChangesMenu.this.skin.setWindowHeight(parseInt(input))) { updateHeightfieldColor(Color.RED); } } @Override public void resetOnClick() { GeneralChangesMenu.this.skin.setWindowWidth(-1); GeneralChangesMenu.this.skin.setWindowHeight(-1); update(GeneralChangesMenu.this.skin.getWindow_Width(), GeneralChangesMenu.this.skin.getWindow_Height()); } }; final int[] borderthickness = this.skin.getWindow_Borderthickness(); final BorderField winBorder = 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) { GeneralChangesMenu.this.skin.setWindowBorderthickness(null); } else { this.tmp[index] = i; GeneralChangesMenu.this.skin.setWindowBorderthickness(this.tmp); } } @Override public int[] reset() { GeneralChangesMenu.this.skin.setWindowBorderthickness(null); this.tmp = GeneralChangesMenu.this.skin.getWindow_Borderthickness(); return this.tmp; } }; final int[] padding = this.skin.getWindow_Padding(); final PaddingField winPadding = 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) { GeneralChangesMenu.this.skin.setWindowPadding(null); } else { this.tmp[index] = i; GeneralChangesMenu.this.skin.setWindowPadding(this.tmp); } } @Override public int[] reset() { GeneralChangesMenu.this.skin.setWindowPadding(null); this.tmp = GeneralChangesMenu.this.skin.getWindow_Padding(); return this.tmp; } }; Position pos = this.skin.getWindow_Position(); boolean[] active = { true, true, true, true, true, true, true, true, true }; final PositionField winPosition = new PositionField(pos, active, bg, strPosFieldTitle) { private final long serialVersionUID = 1L; @Override public void toprightOnPressed() { GeneralChangesMenu.this.skin.setWindowPosition(Position.TOPRIGHT); } @Override public void topleftOnPressed() { GeneralChangesMenu.this.skin.setWindowPosition(Position.TOPLEFT); } @Override public void topOnPressed() { GeneralChangesMenu.this.skin.setWindowPosition(Position.TOP); } @Override public void centerrightOnPressed() { GeneralChangesMenu.this.skin.setWindowPosition(Position.RIGHT); } @Override public void centerleftOnPressed() { GeneralChangesMenu.this.skin.setWindowPosition(Position.LEFT); } @Override public void centerOnPressed() { GeneralChangesMenu.this.skin.setWindowPosition(Position.CENTER); } @Override public void bottomrightOnPressed() { GeneralChangesMenu.this.skin.setWindowPosition(Position.BOTTOMRIGHT); } @Override public void bottomleftOnPressed() { GeneralChangesMenu.this.skin.setWindowPosition(Position.BOTTOMLEFT); } @Override public void bottomOnPressed() { GeneralChangesMenu.this.skin.setWindowPosition(Position.BOTTOM); } }; Animation animInit = this.skin.getWindow_Animation(); final AnimationField winAnim = new AnimationField(bg, animInit, strAnimationFieldTitle) { private final long serialVersionUID = 1L; @Override public void originalAnimChosen() { GeneralChangesMenu.this.skin.setWindowAnimation(Animation.ORIGINAL); } @Override public void horizontalSlowAnimChosen() { GeneralChangesMenu.this.skin.setWindowAnimation(Animation.RECTANGLE_H_SLOW); } @Override public void horizontalFastAnimChosen() { GeneralChangesMenu.this.skin.setWindowAnimation(Animation.RECTANGLE_H_FAST); } @Override public void verticalSlowAnimChosen() { GeneralChangesMenu.this.skin.setWindowAnimation(Animation.RECTANGLE_V_SLOW); } @Override public void verticalFastAnimChosen() { GeneralChangesMenu.this.skin.setWindowAnimation(Animation.RECTANGLE_V_FAST); } }; animInit = this.skin.getWindow_InnerAnimation(); AnimationField winAnimInner = new AnimationField(bg, animInit, strAnimationFieldTitle + " " + strWindowInnerAnimation) { private final long serialVersionUID = 1L; @Override public void originalAnimChosen() { GeneralChangesMenu.this.skin.setWindowInnerAnimation(Animation.ORIGINAL); } @Override public void horizontalSlowAnimChosen() { GeneralChangesMenu.this.skin.setWindowInnerAnimation(Animation.RECTANGLE_H_SLOW); } @Override public void horizontalFastAnimChosen() { GeneralChangesMenu.this.skin.setWindowInnerAnimation(Animation.RECTANGLE_H_FAST); } @Override public void verticalSlowAnimChosen() { GeneralChangesMenu.this.skin.setWindowInnerAnimation(Animation.RECTANGLE_V_SLOW); } @Override public void verticalFastAnimChosen() { GeneralChangesMenu.this.skin.setWindowInnerAnimation(Animation.RECTANGLE_V_FAST); } }; // checkbox boolean b = this.skin.isWindowActive(); this.windowMenu.add(new CheckField(b, bg, strActivateWindowTitle, strWindowActiveLabel) { private final long serialVersionUID = 1L; @Override public void btnPressed(boolean selected) { GeneralChangesMenu.this.skin.setWindowActive(selected); winImage.setVisible(GeneralChangesMenu.this.skin.isWindowActive()); winSize.setVisible(GeneralChangesMenu.this.skin.isWindowActive()); winBorder.setVisible(GeneralChangesMenu.this.skin.isWindowActive()); winPadding.setVisible(GeneralChangesMenu.this.skin.isWindowActive()); winPosition.setVisible(GeneralChangesMenu.this.skin.isWindowActive()); winAnim.setVisible(GeneralChangesMenu.this.skin.isWindowActive()); } }); this.windowMenu.add(winAnimInner); this.windowMenu.add(winAnim); this.windowMenu.add(winImage); this.windowMenu.add(winSize); this.windowMenu.add(winBorder); this.windowMenu.add(winPadding); this.windowMenu.add(winPosition); if (!this.skin.isWindowActive()) { winImage.setVisible(false); winSize.setVisible(false); winBorder.setVisible(false); winPadding.setVisible(false); winPosition.setVisible(false); winAnim.setVisible(false); } } private void initOptionsBarMenu(Color bg) { this.optionsBarMenu = new JPanel(); this.optionsBarMenu.setBackground(bg); this.optionsBarMenu.setLayout(new VerticalLayout(5, VerticalLayout.LEFT)); // size final Numberfield numfield = new Numberfield(this.skin.getOptionsbarHeight(), 3, bg, strSizeFieldTitle, strNumfieldHeight, true) { private final long serialVersionUID = 1L; @Override public void onKeyReleased(String input) { if (!GeneralChangesMenu.this.skin.setOptionsbarHeight(parseInt(input))) { update(Color.RED); } } @Override public void resetOnClick() { GeneralChangesMenu.this.skin.setOptionsbarHeight(FAILURE); update(GeneralChangesMenu.this.skin.getOptionsbarHeight()); } }; // checkbox boolean b = this.skin.getOptionsbarHeight() == 0; this.optionsBarMenu.add(new CheckField(b, bg, strHideFieldTitle, strHide) { private final long serialVersionUID = 1L; @Override public void btnPressed(boolean selected) { if (selected) { GeneralChangesMenu.this.skin.setOptionsbarHeight(0); numfield.setVisible(false); } else { GeneralChangesMenu.this.skin.setOptionsbarHeight(UISizeInits.OPTIONSBAR.getHeight()); numfield.update(GeneralChangesMenu.this.skin.getOptionsbarHeight()); numfield.setVisible(true); } } }); this.optionsBarMenu.add(numfield); } private void initSecOptMenu(Color bg) { this.secOptMenu = new JPanel(); this.secOptMenu.setBackground(bg); this.secOptMenu.setLayout(new VerticalLayout(5, VerticalLayout.LEFT)); // position Position pos = this.skin.getSecurityMenu_Position(); boolean[] active = { true, true, true, true, true, true, true, true, true }; this.secOptMenu.add(new PositionField(pos, active, bg, strPosFieldTitle) { private final long serialVersionUID = 1L; @Override public void toprightOnPressed() { GeneralChangesMenu.this.skin.setSecurityMenuPosition(Position.TOPRIGHT); } @Override public void topleftOnPressed() { GeneralChangesMenu.this.skin.setSecurityMenuPosition(Position.TOPLEFT); } @Override public void topOnPressed() { GeneralChangesMenu.this.skin.setSecurityMenuPosition(Position.TOP); } @Override public void centerrightOnPressed() { GeneralChangesMenu.this.skin.setSecurityMenuPosition(Position.RIGHT); } @Override public void centerleftOnPressed() { GeneralChangesMenu.this.skin.setSecurityMenuPosition(Position.LEFT); } @Override public void centerOnPressed() { GeneralChangesMenu.this.skin.setSecurityMenuPosition(Position.CENTER); } @Override public void bottomrightOnPressed() { GeneralChangesMenu.this.skin.setSecurityMenuPosition(Position.BOTTOMRIGHT); } @Override public void bottomleftOnPressed() { GeneralChangesMenu.this.skin.setSecurityMenuPosition(Position.BOTTOMLEFT); } @Override public void bottomOnPressed() { GeneralChangesMenu.this.skin.setSecurityMenuPosition(Position.BOTTOM); } }); // padding final int[] padding = this.skin.getSecurityMenu_Padding(); this.secOptMenu.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; if (s != null) { try { i = Integer.parseInt(s); } catch (NumberFormatException e) { i = FAILURE; } } if (i == FAILURE) { GeneralChangesMenu.this.skin.setSecurityMenuPadding(null); } else { this.tmp[index] = i; GeneralChangesMenu.this.skin.setSecurityMenuPadding(this.tmp); } } @Override public int[] reset() { GeneralChangesMenu.this.skin.setSecurityMenuPadding(null); this.tmp = new int[] { 0, 0, 0, 0 }; return this.tmp; } }); // checkbox boolean b = !this.skin.getCommandButtonVisibility(CommandButton.LOCK); this.secOptMenu.add(new CheckField(b, bg, strHideFieldTitle + " (" + strCommandBtn_lock + ")", strHide) { private final long serialVersionUID = 1L; @Override public void btnPressed(boolean selected) { GeneralChangesMenu.this.skin.setCommandButtonVisibility(CommandButton.LOCK, !selected); } }); // checkbox b = !this.skin.getCommandButtonVisibility(CommandButton.SWITCH); this.secOptMenu.add(new CheckField(b, bg, strHideFieldTitle + " (" + strCommandBtn_switch + ")", strHide) { private final long serialVersionUID = 1L; @Override public void btnPressed(boolean selected) { GeneralChangesMenu.this.skin.setCommandButtonVisibility(CommandButton.SWITCH, !selected); } }); // checkbox b = !this.skin.getCommandButtonVisibility(CommandButton.LOGOUT); this.secOptMenu.add(new CheckField(b, bg, strHideFieldTitle + " (" + strCommandBtn_logout + ")", strHide) { private final long serialVersionUID = 1L; @Override public void btnPressed(boolean selected) { GeneralChangesMenu.this.skin.setCommandButtonVisibility(CommandButton.LOGOUT, !selected); } }); // checkbox b = !this.skin.getCommandButtonVisibility(CommandButton.PASSWORD); this.secOptMenu.add(new CheckField(b, bg, strHideFieldTitle + " (" + strCommandBtn_passwd + ")", strHide) { private final long serialVersionUID = 1L; @Override public void btnPressed(boolean selected) { GeneralChangesMenu.this.skin.setCommandButtonVisibility(CommandButton.PASSWORD, !selected); } }); // checkbox b = !this.skin.getCommandButtonVisibility(CommandButton.TASKMANAGER); this.secOptMenu.add(new CheckField(b, bg, strHideFieldTitle + " (" + strCommandBtn_taskman + ")", strHide) { private final long serialVersionUID = 1L; @Override public void btnPressed(boolean selected) { GeneralChangesMenu.this.skin.setCommandButtonVisibility(CommandButton.TASKMANAGER, !selected); } }); } private void initSliderMenu(Color bg) { this.sliderMenu = new JPanel(); this.sliderMenu.setBackground(bg); this.sliderMenu.setLayout(new VerticalLayout(5, VerticalLayout.LEFT)); // up // image { Path initialValue = this.skin.getImgPath_SliderArrowUp(Imagetype.DEFAULT); ImageField defaultImage = new ImageField(initialValue, bg, true) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { if (file != null) { GeneralChangesMenu.this.skin.setImgPath_SliderArrowUp(file.toPath(), Imagetype.DEFAULT); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderArrowUp(Imagetype.DEFAULT), false); } else { GeneralChangesMenu.this.skin.setImgPath_SliderArrowUp(null, Imagetype.DEFAULT); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderArrowUp(Imagetype.DEFAULT), true); } } }; initialValue = this.skin.getImgPath_SliderArrowUp(Imagetype.FOCUS); ImageField focusImage = new ImageField(initialValue, bg, true) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { if (file != null) { GeneralChangesMenu.this.skin.setImgPath_SliderArrowUp(file.toPath(), Imagetype.FOCUS); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderArrowUp(Imagetype.FOCUS), false); } else { GeneralChangesMenu.this.skin.setImgPath_SliderArrowUp(null, Imagetype.FOCUS); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderArrowUp(Imagetype.FOCUS), true); } } }; initialValue = this.skin.getImgPath_SliderArrowUp(Imagetype.PRESSED); ImageField pressedImage = new ImageField(initialValue, bg, true) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { if (file != null) { GeneralChangesMenu.this.skin.setImgPath_SliderArrowUp(file.toPath(), Imagetype.PRESSED); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderArrowUp(Imagetype.PRESSED), false); } else { GeneralChangesMenu.this.skin.setImgPath_SliderArrowUp(null, Imagetype.PRESSED); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderArrowUp(Imagetype.PRESSED), true); } } }; JTabbedPane pane = createTabbedPane(bg, strImgFieldTitle + "(" + strSliderUp + ")", defaultImage, focusImage, pressedImage); pane.setTitleAt(0, strImageDefault); pane.setTitleAt(1, strImageFocus); pane.setTitleAt(2, strImagePressed); this.sliderMenu.add(pane); } // down // image { Path initialValue = this.skin.getImgPath_SliderArrowDown(Imagetype.DEFAULT); ImageField defaultImage = new ImageField(initialValue, bg, true) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { if (file != null) { GeneralChangesMenu.this.skin.setImgPath_SliderArrowDown(file.toPath(), Imagetype.DEFAULT); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderArrowDown(Imagetype.DEFAULT), false); } else { GeneralChangesMenu.this.skin.setImgPath_SliderArrowDown(null, Imagetype.DEFAULT); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderArrowDown(Imagetype.DEFAULT), true); } } }; initialValue = this.skin.getImgPath_SliderArrowDown(Imagetype.FOCUS); ImageField focusImage = new ImageField(initialValue, bg, true) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { if (file != null) { GeneralChangesMenu.this.skin.setImgPath_SliderArrowDown(file.toPath(), Imagetype.FOCUS); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderArrowDown(Imagetype.FOCUS), false); } else { GeneralChangesMenu.this.skin.setImgPath_SliderArrowDown(null, Imagetype.FOCUS); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderArrowDown(Imagetype.FOCUS), true); } } }; initialValue = this.skin.getImgPath_SliderArrowDown(Imagetype.PRESSED); ImageField pressedImage = new ImageField(initialValue, bg, true) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { if (file != null) { GeneralChangesMenu.this.skin.setImgPath_SliderArrowDown(file.toPath(), Imagetype.PRESSED); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderArrowDown(Imagetype.PRESSED), false); } else { GeneralChangesMenu.this.skin.setImgPath_SliderArrowDown(null, Imagetype.PRESSED); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderArrowDown(Imagetype.PRESSED), true); } } }; JTabbedPane pane = createTabbedPane(bg, strImgFieldTitle + "(" + strSliderDown + ")", defaultImage, focusImage, pressedImage); pane.setTitleAt(0, strImageDefault); pane.setTitleAt(1, strImageFocus); pane.setTitleAt(2, strImagePressed); this.sliderMenu.add(pane); } // bar // image { Path initialValue = this.skin.getImgPath_SliderBar(Imagetype.DEFAULT); ImageField defaultImage = new ImageField(initialValue, bg, true) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { if (file != null) { GeneralChangesMenu.this.skin.setImgPath_SliderBar(file.toPath(), Imagetype.DEFAULT); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderBar(Imagetype.DEFAULT), false); } else { GeneralChangesMenu.this.skin.setImgPath_SliderBar(null, Imagetype.DEFAULT); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderBar(Imagetype.DEFAULT), true); } } }; initialValue = this.skin.getImgPath_SliderBar(Imagetype.FOCUS); ImageField focusImage = new ImageField(initialValue, bg, true) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { if (file != null) { GeneralChangesMenu.this.skin.setImgPath_SliderBar(file.toPath(), Imagetype.FOCUS); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderBar(Imagetype.FOCUS), false); } else { GeneralChangesMenu.this.skin.setImgPath_SliderBar(null, Imagetype.FOCUS); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderBar(Imagetype.FOCUS), true); } } }; initialValue = this.skin.getImgPath_SliderBar(Imagetype.PRESSED); ImageField pressedImage = new ImageField(initialValue, bg, true) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { if (file != null) { GeneralChangesMenu.this.skin.setImgPath_SliderBar(file.toPath(), Imagetype.PRESSED); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderBar(Imagetype.PRESSED), false); } else { GeneralChangesMenu.this.skin.setImgPath_SliderBar(null, Imagetype.PRESSED); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderBar(Imagetype.PRESSED), true); } } }; JTabbedPane pane = createTabbedPane(bg, strImgFieldTitle + "(" + strSliderBar + ")", defaultImage, focusImage, pressedImage); pane.setTitleAt(0, strImageDefault); pane.setTitleAt(1, strImageFocus); pane.setTitleAt(2, strImagePressed); this.sliderMenu.add(pane); } // midbtn // image { Path initialValue = this.skin.getImgPath_SliderMidBtn(Imagetype.DEFAULT); ImageField defaultImage = new ImageField(initialValue, bg, true) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { if (file != null) { GeneralChangesMenu.this.skin.setImgPath_SliderMidBtn(file.toPath(), Imagetype.DEFAULT); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderMidBtn(Imagetype.DEFAULT), false); } else { GeneralChangesMenu.this.skin.setImgPath_SliderMidBtn(null, Imagetype.DEFAULT); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderMidBtn(Imagetype.DEFAULT), true); } } }; initialValue = this.skin.getImgPath_SliderMidBtn(Imagetype.FOCUS); ImageField focusImage = new ImageField(initialValue, bg, true) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { if (file != null) { GeneralChangesMenu.this.skin.setImgPath_SliderMidBtn(file.toPath(), Imagetype.FOCUS); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderMidBtn(Imagetype.FOCUS), false); } else { GeneralChangesMenu.this.skin.setImgPath_SliderMidBtn(null, Imagetype.FOCUS); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderMidBtn(Imagetype.FOCUS), true); } } }; initialValue = this.skin.getImgPath_SliderMidBtn(Imagetype.PRESSED); ImageField pressedImage = new ImageField(initialValue, bg, true) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { if (file != null) { GeneralChangesMenu.this.skin.setImgPath_SliderMidBtn(file.toPath(), Imagetype.PRESSED); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderMidBtn(Imagetype.PRESSED), false); } else { GeneralChangesMenu.this.skin.setImgPath_SliderMidBtn(null, Imagetype.PRESSED); updatePathField(GeneralChangesMenu.this.skin.getImgPath_SliderMidBtn(Imagetype.PRESSED), true); } } }; JTabbedPane pane = createTabbedPane(bg, strImgFieldTitle + "(" + strSliderBtn + ")", defaultImage, focusImage, pressedImage); pane.setTitleAt(0, strImageDefault); pane.setTitleAt(1, strImageFocus); pane.setTitleAt(2, strImagePressed); this.sliderMenu.add(pane); } } private void initLoadingstatusMenu(Color bg) { this.loadingstatusMenu = new JPanel(); this.loadingstatusMenu.setBackground(bg); this.loadingstatusMenu.setLayout(new VerticalLayout(5, VerticalLayout.LEFT)); this.loadingstatusMenu.add(new ImageField(this.skin.getImgPathLoadingStatusBg(), bg, strImgFieldTitle, false) { private final long serialVersionUID = 1L; @Override public void onFileChosen(File file) { if (file != null) { GeneralChangesMenu.this.skin.setImgPathLoadingStatusBg(file.toPath()); updatePathField(GeneralChangesMenu.this.skin.getImgPathLoadingStatusBg(), false); } else { GeneralChangesMenu.this.skin.setImgPathLoadingStatusBg(null); updatePathField(GeneralChangesMenu.this.skin.getImgPathLoadingStatusBg(), true); } } }); // size this.loadingstatusMenu.add(new Numberfield(this.skin.getLoadingStatusWidth(), 3, bg, strSizeFieldTitle, strNumfieldWidth, true) { private final long serialVersionUID = 1L; @Override public void onKeyReleased(String input) { if (!GeneralChangesMenu.this.skin.setLoadingStatusWidth(parseInt(input))) { update(Color.RED); } } @Override public void resetOnClick() { GeneralChangesMenu.this.skin.setLoadingStatusWidth(0); update(GeneralChangesMenu.this.skin.getLoadingStatusWidth()); } }); final int[] borderthickness = this.skin.getLoadingStatusBorderthickness(); this.loadingstatusMenu.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) { GeneralChangesMenu.this.skin.setLoadingStatusBorderthickness(null); } else { this.tmp[index] = i; GeneralChangesMenu.this.skin.setLoadingStatusBorderthickness(this.tmp); } } @Override public int[] reset() { GeneralChangesMenu.this.skin.setLoadingStatusBorderthickness(null); // tmp = initial value this.tmp[0] = 0; this.tmp[1] = 0; this.tmp[2] = 0; this.tmp[3] = 0; return this.tmp; } }); Animation animInit = this.skin.getLoadingStatusAnimation(); this.loadingstatusMenu.add(new AnimationField(bg, animInit, strAnimationFieldTitle) { private final long serialVersionUID = 1L; @Override public void originalAnimChosen() { GeneralChangesMenu.this.skin.setLoadingStatusAnimation(Animation.ORIGINAL); } @Override public void horizontalSlowAnimChosen() { GeneralChangesMenu.this.skin.setLoadingStatusAnimation(Animation.RECTANGLE_H_SLOW); } @Override public void horizontalFastAnimChosen() { GeneralChangesMenu.this.skin.setLoadingStatusAnimation(Animation.RECTANGLE_H_FAST); } @Override public void verticalSlowAnimChosen() { GeneralChangesMenu.this.skin.setLoadingStatusAnimation(Animation.RECTANGLE_V_SLOW); } @Override public void verticalFastAnimChosen() { GeneralChangesMenu.this.skin.setLoadingStatusAnimation(Animation.RECTANGLE_V_FAST); } }); // checkbox boolean b = this.skin.getLoadingStatusRinganimHidden(); this.loadingstatusMenu.add(new CheckField(b, bg, strHideFieldTitle + " (" + strLoadingRinganim + ")", strHide) { private final long serialVersionUID = 1L; @Override public void btnPressed(boolean selected) { GeneralChangesMenu.this.skin.setLoadingStatusRinganimHidden(selected); } }); } }