use of net.technicpack.ui.listitems.LanguageItem in project LauncherV3 by TechnicPack.
the class OptionsDialog method initControlValues.
private void initControlValues() {
javaArgs.getDocument().removeDocumentListener(javaArgsListener);
javaArgs.setText(settings.getJavaArgs());
javaArgs.getDocument().addDocumentListener(javaArgsListener);
installField.setText(settings.getTechnicRoot().getAbsolutePath());
clientId.setText(settings.getClientId());
for (ActionListener listener : showConsole.getActionListeners()) showConsole.removeActionListener(listener);
showConsole.setSelected(settings.getShowConsole());
showConsole.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
changeShowConsole();
}
});
for (ActionListener listener : askFirstBox.getActionListeners()) askFirstBox.removeActionListener(listener);
askFirstBox.setSelected(!settings.shouldAutoAcceptModpackRequirements());
askFirstBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
changeAskFirst();
}
});
for (ActionListener listener : launchToModpacks.getActionListeners()) launchToModpacks.removeActionListener(listener);
launchToModpacks.setSelected(settings.getLaunchToModpacks());
launchToModpacks.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
changeLaunchToModpacks();
}
});
for (ActionListener listener : versionSelect.getActionListeners()) versionSelect.removeActionListener(listener);
versionSelect.removeAllItems();
versionSelect.addItem(new DefaultVersionItem(javaVersions.getVersion(null, true), resources));
IJavaVersion best64Bit = javaVersions.getBest64BitVersion();
if (best64Bit != null)
versionSelect.addItem(new Best64BitVersionItem(javaVersions.getVersion("64bit", true), resources));
for (IJavaVersion version : javaVersions.getVersions()) {
versionSelect.addItem(new JavaVersionItem(version, resources));
}
String settingsVersion = settings.getJavaVersion();
boolean settingsBitness = settings.getJavaBitness();
if (settingsVersion == null || settingsVersion.isEmpty() || settingsVersion.equals("default"))
versionSelect.setSelectedIndex(0);
else if (settingsVersion.equals("64bit"))
versionSelect.setSelectedIndex(1);
else {
for (int i = 2; i < versionSelect.getItemCount(); i++) {
if (((JavaVersionItem) versionSelect.getItemAt(i)).getVersionNumber().equals(settingsVersion) && ((JavaVersionItem) versionSelect.getItemAt(i)).is64Bit() == settingsBitness) {
versionSelect.setSelectedIndex(i);
break;
}
}
}
versionSelect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
changeJavaVersion();
}
});
rebuildMemoryList();
for (ActionListener listener : streamSelect.getActionListeners()) {
streamSelect.removeActionListener(listener);
}
streamSelect.removeAllItems();
streamSelect.addItem(new StreamItem(resources.getString("launcheroptions.build.stable"), "stable"));
streamSelect.addItem(new StreamItem(resources.getString("launcheroptions.build.beta"), "beta"));
streamSelect.setSelectedIndex((settings.getBuildStream().equals("beta")) ? 1 : 0);
streamSelect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
changeStream();
}
});
for (ActionListener listener : launchSelect.getActionListeners()) launchSelect.removeActionListener(listener);
launchSelect.removeAllItems();
launchSelect.addItem(new OnLaunchItem(resources.getString("launcheroptions.packlaunch.hide"), LaunchAction.HIDE));
launchSelect.addItem(new OnLaunchItem(resources.getString("launcheroptions.packlaunch.close"), LaunchAction.CLOSE));
launchSelect.addItem(new OnLaunchItem(resources.getString("launcheroptions.packlaunch.nothing"), LaunchAction.NOTHING));
switch(settings.getLaunchAction()) {
case HIDE:
launchSelect.setSelectedIndex(0);
break;
case CLOSE:
launchSelect.setSelectedIndex(1);
break;
case NOTHING:
launchSelect.setSelectedIndex(2);
break;
default:
launchSelect.setSelectedIndex(0);
}
launchSelect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
changeLaunchAction();
}
});
for (ActionListener listener : langSelect.getActionListeners()) langSelect.removeActionListener(listener);
langSelect.removeAllItems();
String defaultLocaleText = resources.getString("launcheroptions.language.default");
if (!resources.isDefaultLocaleSupported()) {
defaultLocaleText = defaultLocaleText.concat(" (" + resources.getString("launcheroptions.language.unavailable") + ")");
}
langSelect.setRenderer(new LanguageCellRenderer(resources, null, langSelect.getBackground(), langSelect.getForeground()));
langSelect.addItem(new LanguageItem(ResourceLoader.DEFAULT_LOCALE, defaultLocaleText, resources));
for (int i = 0; i < LauncherMain.supportedLanguages.length; i++) {
langSelect.addItem(new LanguageItem(resources.getCodeFromLocale(LauncherMain.supportedLanguages[i]), LauncherMain.supportedLanguages[i].getDisplayName(LauncherMain.supportedLanguages[i]), resources.getVariant(LauncherMain.supportedLanguages[i])));
}
if (!settings.getLanguageCode().equalsIgnoreCase(ResourceLoader.DEFAULT_LOCALE)) {
Locale loc = resources.getLocaleFromCode(settings.getLanguageCode());
for (int i = 0; i < LauncherMain.supportedLanguages.length; i++) {
if (loc.equals(LauncherMain.supportedLanguages[i])) {
langSelect.setSelectedIndex(i + 1);
break;
}
}
}
langSelect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
changeLanguage();
}
});
widthInput.getDocument().removeDocumentListener(dimensionListener);
heightInput.getDocument().removeDocumentListener(dimensionListener);
int width = settings.getCustomWidth();
int height = settings.getCustomHeight();
width = (width < 1) ? 800 : width;
height = (height < 1) ? 600 : height;
widthInput.setText(Integer.toString(width));
heightInput.setText(Integer.toString(height));
widthInput.getDocument().addDocumentListener(dimensionListener);
heightInput.getDocument().addDocumentListener(dimensionListener);
for (ActionListener listener : windowSelect.getActionListeners()) {
windowSelect.removeActionListener(listener);
}
windowSelect.removeAllItems();
windowSelect.addItem(resources.getString("launcheroptions.video.windowSize.default"));
windowSelect.addItem(resources.getString("launcheroptions.video.windowSize.fullscreen"));
windowSelect.addItem(resources.getString("launcheroptions.video.windowSize.custom"));
switch(settings.getLaunchWindowType()) {
case DEFAULT:
windowSelect.setSelectedIndex(0);
break;
case FULLSCREEN:
windowSelect.setSelectedIndex(1);
break;
case CUSTOM:
windowSelect.setSelectedIndex(2);
break;
}
windowSelect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
changeWindowType();
}
});
updateDimensionsEnabled();
for (ActionListener listener : useStencil.getActionListeners()) {
useStencil.removeActionListener(listener);
}
useStencil.removeAllItems();
useStencil.addItem(resources.getString("launcheroptions.video.stencil.enabled"));
useStencil.addItem(resources.getString("launcheroptions.video.stencil.disabled"));
if (settings.shouldUseStencilBuffer())
useStencil.setSelectedIndex(0);
else
useStencil.setSelectedIndex(1);
useStencil.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
changeEnableStencil();
}
});
}
use of net.technicpack.ui.listitems.LanguageItem in project LauncherV3 by TechnicPack.
the class InstallerFrame method portableInstall.
protected void portableInstall() {
String targetPath = null;
final Relauncher relauncher = new TechnicRelauncher(null, settings.getBuildStream(), 0, new TechnicLauncherDirectories(settings.getTechnicRoot()), resources, params);
try {
String currentPath = relauncher.getRunningPath();
String launcher = (currentPath.endsWith(".exe")) ? "TechnicLauncher.exe" : "TechnicLauncher.jar";
targetPath = new File(portableInstallDir.getText(), launcher).getAbsolutePath();
File targetExe = new File(portableInstallDir.getText(), launcher);
if (!(new File(currentPath).equals(targetExe))) {
if (targetExe.exists() && !targetExe.delete()) {
JOptionPane.showMessageDialog(this, resources.getString("installer.portable.replacefailed"), resources.getString("installer.portable.replacefailtitle"), JOptionPane.ERROR_MESSAGE);
return;
}
MoveLauncherPackage moveTask = new MoveLauncherPackage("", targetExe, relauncher);
moveTask.runTask(null);
}
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
return;
} catch (IOException ex) {
ex.printStackTrace();
return;
} catch (InterruptedException ex) {
ex.printStackTrace();
return;
}
glassPane.setVisible(true);
final String threadTargetPath = targetPath;
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
File oldRoot = settings.getTechnicRoot();
File newRoot = new File(portableInstallDir.getText(), "technic");
File oldSettingsFile = settings.getFilePath();
File newSettingsFile = new File(newRoot, "settings.json");
if (oldSettingsFile.exists() && !oldSettingsFile.getAbsolutePath().equals(newSettingsFile.getAbsolutePath()))
oldSettingsFile.delete();
boolean rootHasChanged = false;
if (oldRoot.exists() && !oldRoot.getAbsolutePath().equals(newRoot.getAbsolutePath())) {
rootHasChanged = true;
try {
if (!newRoot.exists())
newRoot.mkdirs();
FileUtils.copyDirectory(oldRoot, newRoot);
FileUtils.deleteDirectory(oldRoot);
} catch (IOException ex) {
Utils.getLogger().log(Level.SEVERE, "Copying install to new directory failed: ", ex);
}
}
settings.setPortable();
settings.setFilePath(newSettingsFile);
settings.getTechnicRoot();
settings.setLanguageCode(((LanguageItem) portableLanguages.getSelectedItem()).getLangCode());
settings.save();
VersionFileBuildNumber buildNumber = new VersionFileBuildNumber(resources);
Utils.sendTracking("installLauncher", "portable", buildNumber.getBuildNumber(), settings.getClientId());
relauncher.launch(threadTargetPath, params.getArgs());
System.exit(0);
}
});
thread.start();
}
use of net.technicpack.ui.listitems.LanguageItem in project LauncherV3 by TechnicPack.
the class InstallerFrame method standardInstall.
protected void standardInstall() {
glassPane.setVisible(true);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
File oldSettings = settings.getFilePath();
File newSettings = new File(OperatingSystem.getOperatingSystem().getUserDirectoryForApp("technic"), "settings.json");
if (oldSettings.exists() && !oldSettings.getAbsolutePath().equals(newSettings.getAbsolutePath())) {
oldSettings.delete();
}
File oldRoot = settings.getTechnicRoot();
File newRoot = new File(standardInstallDir.getText());
boolean rootHasChanged = false;
if (oldRoot.exists() && !oldRoot.getAbsolutePath().equals(newRoot.getAbsolutePath())) {
rootHasChanged = true;
try {
if (!newRoot.exists())
newRoot.mkdirs();
FileUtils.copyDirectory(oldRoot, newRoot);
FileUtils.deleteDirectory(oldRoot);
} catch (IOException ex) {
Utils.getLogger().log(Level.SEVERE, "Copying install to new directory failed: ", ex);
}
}
settings.setFilePath(newSettings);
if (settings.isPortable() || rootHasChanged || !standardInstallDir.getText().equals(OperatingSystem.getOperatingSystem().getUserDirectoryForApp("technic").getAbsolutePath()))
settings.installTo(standardInstallDir.getText());
settings.getTechnicRoot();
settings.setLanguageCode(((LanguageItem) standardLanguages.getSelectedItem()).getLangCode());
settings.save();
VersionFileBuildNumber buildNumber = new VersionFileBuildNumber(resources);
Utils.sendTracking("installLauncher", "standard", buildNumber.getBuildNumber(), settings.getClientId());
Relauncher relauncher = new TechnicRelauncher(null, settings.getBuildStream(), 0, new TechnicLauncherDirectories(settings.getTechnicRoot()), resources, params);
try {
String currentPath = relauncher.getRunningPath();
relauncher.launch(currentPath, params.getArgs());
System.exit(0);
return;
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
return;
}
}
});
thread.start();
}
use of net.technicpack.ui.listitems.LanguageItem in project LauncherV3 by TechnicPack.
the class LoginFrame method initComponents.
/**
* Generate & setup UI components for the frame
*/
private void initComponents() {
setLayout(new GridBagLayout());
// Close button
JButton closeButton = new JButton();
closeButton.setContentAreaFilled(false);
closeButton.setBorder(BorderFactory.createEmptyBorder());
closeButton.setIcon(resources.getIcon("close.png"));
closeButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
closeButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
closeButtonClicked();
}
});
closeButton.setFocusable(false);
add(closeButton, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(7, 0, 0, 7), 0, 0));
// Logo at the top
JLabel platformImage = new JLabel();
platformImage.setIcon(resources.getIcon("platform_logo.png"));
add(platformImage, new GridBagConstraints(0, 0, 3, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(30, 0, 0, 0), 0, 0));
JLabel instructionText = new JLabel("<html><body align=\"center\">" + resources.getString("login.instructions") + "</body></html>", JLabel.CENTER);
instructionText.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 16));
instructionText.setForeground(LauncherFrame.COLOR_WHITE_TEXT);
add(instructionText, new GridBagConstraints(0, 1, 3, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(9, 3, 0, 3), 0, 0));
JLabel userLabel = new JLabel(resources.getString("login.username"));
userLabel.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 16));
userLabel.setForeground(LauncherFrame.COLOR_WHITE_TEXT);
add(userLabel, new GridBagConstraints(0, 2, 3, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(10, 20, 0, 20), 0, 0));
// Setup username box
nameSelect = new JComboBox();
if (System.getProperty("os.name").toLowerCase(Locale.ENGLISH).contains("mac")) {
nameSelect.setUI(new MetalComboBoxUI());
}
nameSelect.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 16));
nameSelect.setEditable(true);
nameSelect.setBorder(new RoundBorder(LauncherFrame.COLOR_BUTTON_BLUE, 1, 10));
nameSelect.setForeground(LauncherFrame.COLOR_BUTTON_BLUE);
nameSelect.setBackground(LauncherFrame.COLOR_FORMELEMENT_INTERNAL);
nameSelect.setVisible(false);
UserCellRenderer userRenderer = new UserCellRenderer(resources, this.skinRepository);
userRenderer.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 16));
userRenderer.setSelectedBackgroundColor(LauncherFrame.COLOR_FORMELEMENT_INTERNAL);
userRenderer.setSelectedForegroundColor(LauncherFrame.COLOR_BUTTON_BLUE);
userRenderer.setUnselectedBackgroundColor(LauncherFrame.COLOR_CENTRAL_BACK_OPAQUE);
userRenderer.setUnselectedForegroundColor(LauncherFrame.COLOR_BUTTON_BLUE);
nameSelect.setRenderer(userRenderer);
UserCellEditor userEditor = new UserCellEditor(resources.getFont(ResourceLoader.FONT_OPENSANS, 16), this.skinRepository, LauncherFrame.COLOR_BUTTON_BLUE);
nameSelect.setEditor(userEditor);
userEditor.addKeyListener(this);
nameSelect.setUI(new SimpleButtonComboUI(new RoundedBorderFormatter(new RoundBorder(LauncherFrame.COLOR_BUTTON_BLUE, 1, 0)), resources, LauncherFrame.COLOR_SCROLL_TRACK, LauncherFrame.COLOR_SCROLL_THUMB));
nameSelect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
changeUser();
}
});
add(nameSelect, new GridBagConstraints(0, 3, 3, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(3, 20, 0, 20), 4, 4));
name = new JTextField();
name.setBorder(new RoundBorder(LauncherFrame.COLOR_BUTTON_BLUE, 1, 10));
name.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 16));
name.setBackground(LauncherFrame.COLOR_FORMELEMENT_INTERNAL);
name.setForeground(LauncherFrame.COLOR_BUTTON_BLUE);
name.setCaretColor(LauncherFrame.COLOR_BUTTON_BLUE);
name.addKeyListener(this);
add(name, new GridBagConstraints(0, 3, 3, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(3, 20, 0, 20), 4, 17));
JLabel passLabel = new JLabel(resources.getString("login.password"));
passLabel.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 16));
passLabel.setForeground(LauncherFrame.COLOR_WHITE_TEXT);
add(passLabel, new GridBagConstraints(0, 4, 3, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(12, 20, 0, 20), 0, 0));
// Setup password box
password = new JPasswordField();
password.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 16));
password.setBorder(new RoundBorder(LauncherFrame.COLOR_BUTTON_BLUE, 1, 10));
password.setForeground(LauncherFrame.COLOR_BUTTON_BLUE);
password.setBackground(LauncherFrame.COLOR_FORMELEMENT_INTERNAL);
password.addKeyListener(this);
password.setEchoChar('*');
password.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
attemptLogin();
}
});
password.setCaretColor(LauncherFrame.COLOR_BUTTON_BLUE);
add(password, new GridBagConstraints(0, 5, 3, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(3, 20, 0, 20), 4, 17));
// "Remember this account"
Font rememberFont = resources.getFont(ResourceLoader.FONT_OPENSANS, 14);
rememberAccount = new JCheckBox("<html><body style=\"color:#D0D0D0\">" + resources.getString("login.remember") + "</body></html>", false);
rememberAccount.setFont(rememberFont);
rememberAccount.setForeground(LauncherFrame.COLOR_WHITE_TEXT);
rememberAccount.setOpaque(false);
rememberAccount.setHorizontalTextPosition(SwingConstants.LEFT);
rememberAccount.setHorizontalAlignment(SwingConstants.RIGHT);
rememberAccount.setBorder(BorderFactory.createEmptyBorder());
rememberAccount.setIconTextGap(6);
rememberAccount.addKeyListener(this);
rememberAccount.setSelectedIcon(resources.getIcon("checkbox_closed.png"));
rememberAccount.setIcon(resources.getIcon("checkbox_open.png"));
rememberAccount.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
toggleRemember();
}
});
rememberAccount.setFocusPainted(false);
add(rememberAccount, new GridBagConstraints(1, 6, 2, 1, 1.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.BOTH, new Insets(24, 20, 0, 20), 0, 0));
// Login button
RoundedButton button = new RoundedButton(resources.getString("login.button"));
button.setBorder(BorderFactory.createEmptyBorder(5, 17, 10, 17));
button.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 16));
button.setContentAreaFilled(false);
button.setForeground(LauncherFrame.COLOR_BUTTON_BLUE);
button.setHoverForeground(LauncherFrame.COLOR_BLUE);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
attemptLogin();
}
});
add(button, new GridBagConstraints(0, 6, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(24, 20, 0, 0), 0, 0));
add(Box.createVerticalGlue(), new GridBagConstraints(0, 8, 3, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
JPanel linkPane = new JPanel();
linkPane.setBackground(LauncherFrame.COLOR_SELECTOR_BACK);
linkPane.setBorder(BorderFactory.createEmptyBorder(7, 0, 7, 0));
linkPane.setLayout(new BoxLayout(linkPane, BoxLayout.LINE_AXIS));
linkPane.add(Box.createHorizontalStrut(8));
languages = new JComboBox();
String defaultLocaleText = resources.getString("launcheroptions.language.default");
if (!resources.isDefaultLocaleSupported()) {
defaultLocaleText = defaultLocaleText.concat(" (" + resources.getString("launcheroptions.language.unavailable") + ")");
}
languages.addItem(new LanguageItem(ResourceLoader.DEFAULT_LOCALE, defaultLocaleText, resources));
for (int i = 0; i < LauncherMain.supportedLanguages.length; i++) {
languages.addItem(new LanguageItem(resources.getCodeFromLocale(LauncherMain.supportedLanguages[i]), LauncherMain.supportedLanguages[i].getDisplayName(LauncherMain.supportedLanguages[i]), resources.getVariant(LauncherMain.supportedLanguages[i])));
}
if (!settings.getLanguageCode().equalsIgnoreCase(ResourceLoader.DEFAULT_LOCALE)) {
Locale loc = resources.getLocaleFromCode(settings.getLanguageCode());
for (int i = 0; i < LauncherMain.supportedLanguages.length; i++) {
if (loc.equals(LauncherMain.supportedLanguages[i])) {
languages.setSelectedIndex(i + 1);
break;
}
}
}
languages.setBorder(BorderFactory.createEmptyBorder());
languages.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 14));
languages.setUI(new LanguageCellUI(resources, new RoundedBorderFormatter(new LineBorder(Color.black, 1)), LauncherFrame.COLOR_SCROLL_TRACK, LauncherFrame.COLOR_SCROLL_THUMB));
languages.setForeground(LauncherFrame.COLOR_WHITE_TEXT);
languages.setBackground(LauncherFrame.COLOR_SELECTOR_BACK);
languages.setRenderer(new LanguageCellRenderer(resources, "globe.png", LauncherFrame.COLOR_SELECTOR_BACK, LauncherFrame.COLOR_WHITE_TEXT));
languages.setEditable(false);
languages.setFocusable(false);
languages.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
languageChanged();
}
});
linkPane.add(languages);
linkPane.add(Box.createHorizontalGlue());
JButton termsLink = new JButton(resources.getString("login.terms"));
termsLink.setContentAreaFilled(false);
termsLink.setBorder(BorderFactory.createEmptyBorder());
termsLink.setForeground(LauncherFrame.COLOR_WHITE_TEXT);
termsLink.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 14));
termsLink.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
termsLink.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
visitTerms();
}
});
linkPane.add(termsLink);
linkPane.add(Box.createHorizontalStrut(8));
add(linkPane, new GridBagConstraints(0, 9, 3, 1, 1.0, 0.0, GridBagConstraints.SOUTH, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0));
}
use of net.technicpack.ui.listitems.LanguageItem in project LauncherV3 by TechnicPack.
the class InstallerFrame method setupPortableMode.
private void setupPortableMode(JPanel panel) {
panel.setLayout(new GridBagLayout());
JLabel portableSpiel = new JLabel("<html><body align=\"left\" style='margin-right:10px;'>" + resources.getString("launcher.installer.portablespiel") + "</body></html>");
portableSpiel.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 16));
portableSpiel.setForeground(LauncherFrame.COLOR_WHITE_TEXT);
portableSpiel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
panel.add(portableSpiel, new GridBagConstraints(0, 0, 3, 1, 1.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(9, 8, 9, 3), 0, 0));
panel.add(Box.createGlue(), new GridBagConstraints(0, 1, 3, 1, 1.0, 0.7, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
JLabel installFolderLabel = new JLabel(resources.getString("launcher.installer.folder"));
installFolderLabel.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 16));
installFolderLabel.setForeground(LauncherFrame.COLOR_WHITE_TEXT);
panel.add(installFolderLabel, new GridBagConstraints(0, 2, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 24, 0, 8), 0, 0));
String installDir = "";
if (settings.isPortable())
installDir = settings.getTechnicRoot().getAbsolutePath();
portableInstallDir = new JTextField(installDir);
portableInstallDir.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 16));
portableInstallDir.setForeground(LauncherFrame.COLOR_BLUE);
portableInstallDir.setBackground(LauncherFrame.COLOR_FORMELEMENT_INTERNAL);
portableInstallDir.setHighlighter(null);
portableInstallDir.setEditable(false);
portableInstallDir.setCursor(null);
portableInstallDir.setBorder(new RoundBorder(LauncherFrame.COLOR_BUTTON_BLUE, 1, 8));
panel.add(portableInstallDir, new GridBagConstraints(1, 2, 1, 1, 1, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 5, 0, 5), 0, 16));
RoundedButton selectInstall = new RoundedButton(resources.getString("launcher.installer.select"));
selectInstall.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 16));
selectInstall.setContentAreaFilled(false);
selectInstall.setForeground(LauncherFrame.COLOR_BUTTON_BLUE);
selectInstall.setHoverForeground(LauncherFrame.COLOR_BLUE);
selectInstall.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
selectPortable();
}
});
panel.add(selectInstall, new GridBagConstraints(2, 2, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 5, 0, 16), 0, 0));
panel.add(Box.createGlue(), new GridBagConstraints(0, 3, 3, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
String defaultLocaleText = resources.getString("launcheroptions.language.default");
if (!resources.isDefaultLocaleSupported()) {
defaultLocaleText = defaultLocaleText.concat(" (" + resources.getString("launcheroptions.language.unavailable") + ")");
}
portableLanguages = new JComboBox();
portableLanguages.addItem(new LanguageItem(ResourceLoader.DEFAULT_LOCALE, defaultLocaleText, resources));
for (int i = 0; i < LauncherMain.supportedLanguages.length; i++) {
portableLanguages.addItem(new LanguageItem(resources.getCodeFromLocale(LauncherMain.supportedLanguages[i]), LauncherMain.supportedLanguages[i].getDisplayName(LauncherMain.supportedLanguages[i]), resources.getVariant(LauncherMain.supportedLanguages[i])));
}
if (!settings.getLanguageCode().equalsIgnoreCase(ResourceLoader.DEFAULT_LOCALE)) {
Locale loc = resources.getLocaleFromCode(settings.getLanguageCode());
for (int i = 0; i < LauncherMain.supportedLanguages.length; i++) {
if (loc.equals(LauncherMain.supportedLanguages[i])) {
portableLanguages.setSelectedIndex(i + 1);
break;
}
}
}
portableLanguages.setBorder(new RoundBorder(LauncherFrame.COLOR_SCROLL_THUMB, 1, 10));
portableLanguages.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 14));
portableLanguages.setUI(new LanguageCellUI(resources, new RoundedBorderFormatter(new LineBorder(Color.black, 1)), LauncherFrame.COLOR_SCROLL_TRACK, LauncherFrame.COLOR_SCROLL_THUMB));
portableLanguages.setForeground(LauncherFrame.COLOR_WHITE_TEXT);
portableLanguages.setBackground(LauncherFrame.COLOR_SELECTOR_BACK);
portableLanguages.setRenderer(new LanguageCellRenderer(resources, "globe.png", LauncherFrame.COLOR_SELECTOR_BACK, LauncherFrame.COLOR_WHITE_TEXT));
portableLanguages.setEditable(false);
portableLanguages.setFocusable(false);
portableLanguages.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
portableLanguageChanged();
}
});
panel.add(portableLanguages, new GridBagConstraints(0, 4, 1, 0, 0, 0, GridBagConstraints.SOUTHWEST, GridBagConstraints.NONE, new Insets(0, 8, 8, 0), 0, 0));
portableInstallButton = new RoundedButton(resources.getString("launcher.installer.install"));
portableInstallButton.setFont(resources.getFont(ResourceLoader.FONT_OPENSANS, 16));
portableInstallButton.setContentAreaFilled(false);
portableInstallButton.setForeground(LauncherFrame.COLOR_GREY_TEXT);
portableInstallButton.setHoverForeground(LauncherFrame.COLOR_BLUE);
portableInstallButton.setBorder(BorderFactory.createEmptyBorder(5, 17, 10, 17));
portableInstallButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
portableInstall();
}
});
portableInstallButton.setEnabled(false);
if (!installDir.equals("")) {
portableInstallButton.setForeground(LauncherFrame.COLOR_BUTTON_BLUE);
portableInstallButton.setEnabled(true);
}
panel.add(portableInstallButton, new GridBagConstraints(1, 4, 2, 1, 0, 0, GridBagConstraints.EAST, GridBagConstraints.VERTICAL, new Insets(0, 0, 8, 8), 0, 0));
}
Aggregations