List of usage examples for javax.swing JTabbedPane addTab
public void addTab(String title, Icon icon, Component component, String tip)
component
and tip
represented by a title
and/or icon
, either of which can be null
. From source file:utybo.easypastebin.windows.MainWindow.java
/** * Creates the window//from w w w. ja v a 2s . c om */ @SuppressWarnings({ "rawtypes", "unchecked" }) public MainWindow() { EasyPastebin.LOGGER.log("Initializing the window", SinkJLevel.INFO); setTitle("EasyPastebin"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 664, 431); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); contentPane.add(tabbedPane, BorderLayout.CENTER); JPanel main = new JPanel(); tabbedPane.addTab("EasyPastebin", null, main, null); main.setLayout(null); JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(62, 39, 312, 132); main.add(scrollPane); pasteContent = new JTextArea(); pasteContent.setFont(new Font("Monospaced", Font.PLAIN, 11)); pasteContent.setWrapStyleWord(true); pasteContent.setLineWrap(true); pasteContent.setToolTipText("Put your paste here!"); scrollPane.setViewportView(pasteContent); JLabel titleLabel = new JLabel("Title :"); titleLabel.setFont(new Font("Tahoma", Font.PLAIN, 12)); titleLabel.setBounds(10, 11, 42, 21); main.add(titleLabel); pasteTitle = new JTextField(); pasteTitle.setBounds(62, 12, 312, 20); main.add(pasteTitle); pasteTitle.setColumns(10); JLabel lblPaste = new JLabel("Paste :"); lblPaste.setForeground(Color.RED); lblPaste.setFont(new Font("Tahoma", Font.PLAIN, 12)); lblPaste.setBounds(10, 85, 53, 21); main.add(lblPaste); pasteExpireDate = new JComboBox(); pasteExpireDate.setFont(new Font("Tahoma", Font.PLAIN, 12)); pasteExpireDate.setModel(new DefaultComboBoxModel(EnumExpireDate.values())); pasteExpireDate.setBounds(468, 12, 155, 21); main.add(pasteExpireDate); JLabel lblExpireDate = new JLabel("Expire Date :"); lblExpireDate.setFont(new Font("Tahoma", Font.PLAIN, 12)); lblExpireDate.setBounds(384, 14, 81, 14); main.add(lblExpireDate); JLabel lblfieldsInRed = new JLabel("(Fields in red are required)"); lblfieldsInRed.setBounds(72, 182, 302, 14); main.add(lblfieldsInRed); btnSubmit = new JButton("Submit!"); btnSubmit.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { EasyPastebin.LOGGER.log("Starting Submit script", SinkJLevel.INFO); btnSubmit.setEnabled(false); btnSubmit.setText("Please wait..."); boolean success = true; String paste = pasteContent.getText(); String title = pasteTitle.getText(); EnumExpireDate expireDate = (EnumExpireDate) pasteExpireDate.getSelectedItem(); if (paste.equals("") || paste.equals(" ") || paste.equals(null)) { pastebinUrl.setText("ERROR"); JOptionPane.showMessageDialog(null, "You cannot send empty pastes!", "Error while processing paste", JOptionPane.ERROR_MESSAGE); } else { try { EasyPastebin.LOGGER.log("Setting options", SinkJLevel.INFO); Map map = new HashMap<String, String>(); map.put("api_dev_key", HttpHelper.API_KEY); map.put("api_option", "paste"); map.put("api_paste_code", paste); if (!(expireDate.equals(null) || expireDate.equals(EnumExpireDate.NEVER))) map.put("api_paste_expire_date", expireDate.getRawName()); if (!(title.equals("") || title.equals(" ") || title.equals(null))) map.put("api_paste_name", title); EasyPastebin.LOGGER.log("Sending paste", SinkJLevel.INFO); String actionResult = HttpHelper.sendPost("http://pastebin.com/api/api_post.php", map) .asString(); EasyPastebin.LOGGER.log("Paste sent, checking output", SinkJLevel.INFO); // Exception handlers if (actionResult.equals("Bad API request, invalid api_option")) { success = false; EasyPastebin.LOGGER.log( "The output is an error message : " + actionResult + ". Submit script failed!", SinkJLevel.ERROR); JOptionPane.showMessageDialog(null, "Error while processing paste. Incorrect Pastebin option!", "Error", JOptionPane.ERROR_MESSAGE); } if (actionResult.equals("Bad API request, invalid api_dev_key")) { success = false; EasyPastebin.LOGGER.log( "The output is an error message : " + actionResult + ". Submit script failed!", SinkJLevel.ERROR); JOptionPane.showMessageDialog(null, "Error while processing paste. Incorrect dev key! Try again with a more recent version!", "Error", JOptionPane.ERROR_MESSAGE); } if (actionResult.equals("Bad API request, IP blocked")) { success = false; EasyPastebin.LOGGER.log( "The output is an error message : " + actionResult + ". Submit script failed!", SinkJLevel.ERROR); JOptionPane.showMessageDialog(null, "Error while processing paste. Your IP is blocked!", "Error", JOptionPane.ERROR_MESSAGE); } if (actionResult.equals( "Bad API request, maximum number of 25 unlisted pastes for your free account")) { success = false; EasyPastebin.LOGGER.log( "The output is an error message : " + actionResult + ". Submit script failed!", SinkJLevel.ERROR); } if (actionResult.equals( "Bad API request, maximum number of 10 private pastes for your free account")) { success = false; EasyPastebin.LOGGER.log( "The output is an error message : " + actionResult + ". Submit script failed!", SinkJLevel.ERROR); } if (actionResult.equals("Bad API request, api_paste_code was empty")) { success = false; EasyPastebin.LOGGER.log( "The output is an error message : " + actionResult + ". Submit script failed!", SinkJLevel.ERROR); } if (actionResult.equals("Bad API request, maximum paste file size exceeded")) { success = false; EasyPastebin.LOGGER.log( "The output is an error message : " + actionResult + ". Submit script failed!", SinkJLevel.ERROR); JOptionPane.showMessageDialog(null, "Error while processing paste. Your paste is too big!", "Error", JOptionPane.ERROR_MESSAGE); } if (actionResult.equals("Bad API request, invalid api_expire_date")) { success = false; EasyPastebin.LOGGER.log( "The output is an error message : " + actionResult + ". Submit script failed!", SinkJLevel.ERROR); JOptionPane.showMessageDialog(null, "Error while processing paste. Invalid expire date!", "Error", JOptionPane.ERROR_MESSAGE); } if (actionResult.equals("Bad API request, invalid api_paste_private")) { success = false; EasyPastebin.LOGGER.log( "The output is an error message : " + actionResult + ". Submit script failed!", SinkJLevel.ERROR); JOptionPane.showMessageDialog(null, "Error while processing paste. Invalid privacy value!", "Error", JOptionPane.ERROR_MESSAGE); } if (actionResult.equals("Bad API request, invalid api_paste_format")) { success = false; EasyPastebin.LOGGER.log( "The output is an error message : " + actionResult + ". Submit script failed!", SinkJLevel.ERROR); JOptionPane.showMessageDialog(null, "Error while processing paste. Invalid format!", "Error", JOptionPane.ERROR_MESSAGE); } // END // Starting display stuff if (success == false) { EasyPastebin.LOGGER.log("Submit script failed : success == false", SinkJLevel.ERROR); pastebinUrl.setText("ERROR"); } if (success == true) { EasyPastebin.LOGGER.log("Paste sent! Starting display script!", SinkJLevel.INFO); pastebinUrl.setText(actionResult); JOptionPane.showMessageDialog(null, "Paste successfully sent!", "Done!", JOptionPane.INFORMATION_MESSAGE); EasyPastebin.LOGGER.log("Display script finished! Paste URL is : " + actionResult, SinkJLevel.INFO); } } catch (ClientProtocolException e) { EasyPastebin.LOGGER.log("Unexpected error! " + e, SinkJLevel.ERROR); JOptionPane.showMessageDialog(null, "Error while processing paste : " + e, "Error", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } catch (IOException e) { EasyPastebin.LOGGER.log("Unexpected error! " + e, SinkJLevel.ERROR); JOptionPane.showMessageDialog(null, "Error while processing paste : " + e, "Error", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } catch (MissingParamException e) { EasyPastebin.LOGGER.log("Unexpected error! " + e, SinkJLevel.ERROR); JOptionPane.showMessageDialog(null, "Error while processing paste : " + e + "! This is a severe programming error! Try again with a more recent version!", "Error", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } } EasyPastebin.LOGGER.log("Re-enabling the Submit button ", SinkJLevel.INFO); btnSubmit.setEnabled(true); btnSubmit.setText("Submit another paste!"); EasyPastebin.LOGGER.log("Finished submit script! Success : " + success, SinkJLevel.INFO); } }); btnSubmit.setBounds(386, 45, 237, 44); main.add(btnSubmit); pastebinUrl = new JTextField(); pastebinUrl.setText("The paste's URL will be shown here!"); pastebinUrl.setEditable(false); pastebinUrl.setBounds(384, 198, 239, 32); main.add(pastebinUrl); pastebinUrl.setColumns(10); JPanel about = new JPanel(); tabbedPane.addTab("About", null, about, null); JLabel label = new JLabel("EasyPastebin"); label.setBounds(12, 12, 623, 39); label.setHorizontalAlignment(SwingConstants.CENTER); label.setFont(new Font("Dialog", Font.PLAIN, 25)); JLabel lblTheEasiestWay = new JLabel("The easiest way to use Pastebin.com"); lblTheEasiestWay.setBounds(12, 63, 623, 32); lblTheEasiestWay.setFont(new Font("Dialog", Font.PLAIN, 16)); lblTheEasiestWay.setHorizontalAlignment(SwingConstants.CENTER); about.setLayout(null); about.add(label); about.add(lblTheEasiestWay); JButton btnForkM = new JButton("Fork me on Github!"); btnForkM.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { goToUrl("https://github.com/utybo/EasyPastebin"); } }); btnForkM.setBounds(12, 117, 623, 25); about.add(btnForkM); JButton btnCheckOutUtybos = new JButton("Check out utybo's projects!"); btnCheckOutUtybos.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { goToUrl("http://utybo.github.io/"); } }); btnCheckOutUtybos.setBounds(12, 154, 623, 25); about.add(btnCheckOutUtybos); JButton btnGoToPastebincom = new JButton("Go to Pastebin.com!"); btnGoToPastebincom.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { goToUrl("http://www.pastebin.com"); } }); btnGoToPastebincom.setBounds(12, 191, 623, 25); about.add(btnGoToPastebincom); JLabel lblcUtybo = new JLabel( "This soft was made by utybo. It uses Apache's libraries for the interaction with Pastebin's API"); lblcUtybo.setFont(new Font("Dialog", Font.PLAIN, 10)); lblcUtybo.setHorizontalAlignment(SwingConstants.CENTER); lblcUtybo.setBounds(12, 324, 623, 15); about.add(lblcUtybo); JLabel lblClickMeTo = new JLabel("Click me to go to Apache's licence official website"); lblClickMeTo.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { goToUrl("http://www.apache.org/licenses/LICENSE-2.0"); } }); lblClickMeTo.setHorizontalAlignment(SwingConstants.CENTER); lblClickMeTo.setFont(new Font("Dialog", Font.PLAIN, 10)); lblClickMeTo.setBounds(12, 342, 623, 15); about.add(lblClickMeTo); setVisible(true); EasyPastebin.LOGGER.log("Done!", SinkJLevel.INFO); }
From source file:de.mpg.mpi_inf.bioinf.netanalyzer.ui.IntHistogramVisualizer.java
@Override protected JComponent addSettingsPanels(JTabbedPane aPanel) { addTab(aPanel, Messages.DI_GENERAL, new SettingsPanel(general), Messages.TT_GENSETTINGS); addTab(aPanel, Messages.DI_AXES, new SettingsPanel(settings.axes), Messages.TT_AXESSETTINGS); addTab(aPanel, Messages.DI_GRID, new SettingsPanel(settings.grid), Messages.TT_GRIDSETTINGS); boolean useScatter = settings.useScatter(); final Box histPanel = Box.createVerticalBox(); final JComboBox choiceCombo = addChoice(histPanel, useScatter ? 1 : 0); final CardLayout innerLayout = new CardLayout(); final JPanel innerPanel = new JPanel(innerLayout); histPanel.add(innerPanel);//from ww w . ja v a 2s . c o m aPanel.addTab(Messages.DI_HISTOGRAM, null, histPanel, Messages.TT_HISTSETTINGS); ItemListener listener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { innerLayout.next(innerPanel); } } }; choiceCombo.addItemListener(listener); innerPanel.add(new SettingsPanel(settings.bars), "0"); innerPanel.add(new SettingsPanel(settings.scatter), "1"); if (useScatter) { innerLayout.next(innerPanel); } return choiceCombo; }
From source file:cl.uai.webcursos.emarking.desktop.OptionsDialog.java
/** * Create the dialog./*w w w .j ava 2 s . co m*/ */ public OptionsDialog(Moodle _moodle) { addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { cancelled = true; } }); setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); setIconImage(Toolkit.getDefaultToolkit().getImage(OptionsDialog.class .getResource("/cl/uai/webcursos/emarking/desktop/resources/glyphicons_439_wrench.png"))); setTitle(EmarkingDesktop.lang.getString("emarkingoptions")); setModal(true); setBounds(100, 100, 707, 444); this.moodle = _moodle; this.moodle.loadProperties(); getContentPane().setLayout(new BorderLayout()); { JPanel buttonPane = new JPanel(); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); getContentPane().add(buttonPane, BorderLayout.SOUTH); { okButton = new JButton(EmarkingDesktop.lang.getString("ok")); okButton.setEnabled(false); okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { UrlValidator validator = new UrlValidator(UrlValidator.ALLOW_LOCAL_URLS); if (!validator.isValid(moodleurl.getText())) { throw new Exception(EmarkingDesktop.lang.getString("invalidmoodleurl") + " " + moodleurl.getText()); } File f = new File(filename.getText()); if (!f.exists() || f.isDirectory() || (!f.getPath().endsWith(".pdf") && !f.getPath().endsWith(".zip"))) { throw new Exception(EmarkingDesktop.lang.getString("invalidpdffile") + " " + filename.getText()); } if (omrtemplate.getText().trim().length() > 0) { File omrf = new File(omrtemplate.getText()); if (!omrf.exists() || omrf.isDirectory() || (!omrf.getPath().endsWith(".xtmpl"))) { throw new Exception(EmarkingDesktop.lang.getString("invalidomrfile") + " " + omrtemplate.getText()); } } moodle.setLastfile(filename.getText()); moodle.getQrExtractor().setDoubleside(chckbxDoubleSide.isSelected()); moodle.setMaxthreads(Integer.parseInt(getMaxThreads().getSelectedItem().toString())); moodle.setResolution(Integer.parseInt(getResolution().getSelectedItem().toString())); moodle.setMaxzipsize(getMaxZipSize().getSelectedItem().toString()); moodle.setOMRTemplate(omrtemplate.getText()); moodle.setThreshold(Integer.parseInt(spinnerOMRthreshold.getValue().toString())); moodle.setDensity(Integer.parseInt(spinnerOMRdensity.getValue().toString())); moodle.setShapeSize(Integer.parseInt(spinnerOMRshapeSize.getValue().toString())); moodle.setAnonymousPercentage( Integer.parseInt(spinnerAnonymousPercentage.getValue().toString())); moodle.setAnonymousPercentageCustomPage( Integer.parseInt(spinnerAnonymousPercentageCustomPage.getValue().toString())); moodle.setFakeStudents(chckbxMarkersTraining.isSelected()); moodle.saveProperties(); cancelled = false; setVisible(false); } catch (Exception ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(panel, EmarkingDesktop.lang.getString("invaliddatainform")); } } }); okButton.setActionCommand("OK"); buttonPane.add(okButton); getRootPane().setDefaultButton(okButton); } { JButton cancelButton = new JButton(EmarkingDesktop.lang.getString("cancel")); cancelButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { cancelled = true; setVisible(false); } }); cancelButton.setActionCommand("Cancel"); buttonPane.add(cancelButton); } } JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); getContentPane().add(tabbedPane, BorderLayout.CENTER); panel = new JPanel(); tabbedPane.addTab(EmarkingDesktop.lang.getString("general"), null, panel, null); panel.setLayout(null); JPanel panel_2 = new JPanel(); panel_2.setBorder(new LineBorder(new Color(0, 0, 0), 1, true)); panel_2.setBounds(10, 11, 665, 131); panel.add(panel_2); panel_2.setLayout(null); JLabel lblPassword = new JLabel(EmarkingDesktop.lang.getString("password")); lblPassword.setBounds(10, 99, 109, 14); panel_2.add(lblPassword); lblPassword.setHorizontalAlignment(SwingConstants.RIGHT); password = new JPasswordField(); password.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { testConnection(); } }); password.setBounds(129, 96, 329, 20); panel_2.add(password); this.password.setText(this.moodle.getPassword()); btnTestConnection = new JButton(EmarkingDesktop.lang.getString("connect")); btnTestConnection.setEnabled(false); btnTestConnection.setBounds(468, 93, 172, 27); panel_2.add(btnTestConnection); username = new JTextField(); username.setBounds(129, 65, 329, 20); panel_2.add(username); username.setColumns(10); this.username.setText(this.moodle.getUsername()); moodleurl = new JTextField(); moodleurl.setBounds(129, 34, 329, 20); panel_2.add(moodleurl); moodleurl.setColumns(10); moodleurl.getDocument().addDocumentListener(new DocumentListener() { @Override public void removeUpdate(DocumentEvent e) { warn(); } @Override public void insertUpdate(DocumentEvent e) { warn(); } @Override public void changedUpdate(DocumentEvent e) { warn(); } private void warn() { UrlValidator validator = new UrlValidator(UrlValidator.ALLOW_LOCAL_URLS); if (!validator.isValid(moodleurl.getText()) || !moodleurl.getText().endsWith("/")) { moodleurl.setForeground(Color.RED); btnTestConnection.setEnabled(false); } else { moodleurl.setForeground(Color.BLACK); btnTestConnection.setEnabled(true); } } }); // Initializing values from moodle configuration this.moodleurl.setText(this.moodle.getUrl()); JLabel lblMoodleUrl = new JLabel(EmarkingDesktop.lang.getString("moodleurl")); lblMoodleUrl.setBounds(10, 37, 109, 14); panel_2.add(lblMoodleUrl); lblMoodleUrl.setHorizontalAlignment(SwingConstants.RIGHT); JLabel lblUsername = new JLabel(EmarkingDesktop.lang.getString("username")); lblUsername.setBounds(10, 68, 109, 14); panel_2.add(lblUsername); lblUsername.setHorizontalAlignment(SwingConstants.RIGHT); JLabel lblMoodleSettings = new JLabel(EmarkingDesktop.lang.getString("moodlesettings")); lblMoodleSettings.setBounds(10, 11, 230, 14); panel_2.add(lblMoodleSettings); btnTestConnection.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { testConnection(); } }); JPanel panel_3 = new JPanel(); panel_3.setBorder(new LineBorder(new Color(0, 0, 0), 1, true)); panel_3.setBounds(10, 159, 666, 174); panel.add(panel_3); panel_3.setLayout(null); JLabel lblPdfFile = new JLabel(EmarkingDesktop.lang.getString("pdffile")); lblPdfFile.setBounds(0, 39, 119, 14); panel_3.add(lblPdfFile); lblPdfFile.setHorizontalAlignment(SwingConstants.RIGHT); JLabel lblScanned = new JLabel(EmarkingDesktop.lang.getString("scanned")); lblScanned.setBounds(0, 64, 119, 14); panel_3.add(lblScanned); lblScanned.setHorizontalAlignment(SwingConstants.RIGHT); chckbxDoubleSide = new JCheckBox(EmarkingDesktop.lang.getString("doubleside")); chckbxDoubleSide.setEnabled(false); chckbxDoubleSide.setBounds(125, 60, 333, 23); panel_3.add(chckbxDoubleSide); chckbxDoubleSide.setToolTipText(EmarkingDesktop.lang.getString("doublesidetooltip")); this.chckbxDoubleSide.setSelected(this.moodle.getQrExtractor().isDoubleside()); filename = new JTextField(); filename.setEnabled(false); filename.setBounds(129, 36, 329, 20); panel_3.add(filename); filename.setColumns(10); filename.getDocument().addDocumentListener(new DocumentListener() { @Override public void removeUpdate(DocumentEvent e) { warn(); } @Override public void insertUpdate(DocumentEvent e) { warn(); } @Override public void changedUpdate(DocumentEvent e) { warn(); } private void warn() { validateFileForProcessing(!btnTestConnection.isEnabled()); } }); this.filename.setText(this.moodle.getLastfile()); btnOpenPdfFile = new JButton(EmarkingDesktop.lang.getString("openfile")); btnOpenPdfFile.setEnabled(false); btnOpenPdfFile.setBounds(468, 33, 172, 27); panel_3.add(btnOpenPdfFile); JLabel lblPdfFileSettings = new JLabel(EmarkingDesktop.lang.getString("filesettings")); lblPdfFileSettings.setBounds(10, 11, 230, 14); panel_3.add(lblPdfFileSettings); JLabel lblOMRtemplate = new JLabel(EmarkingDesktop.lang.getString("omrfile")); lblOMRtemplate.setHorizontalAlignment(SwingConstants.RIGHT); lblOMRtemplate.setBounds(0, 142, 119, 14); panel_3.add(lblOMRtemplate); omrtemplate = new JTextField(); omrtemplate.setEnabled(false); omrtemplate.setText((String) null); omrtemplate.setColumns(10); omrtemplate.setBounds(129, 139, 329, 20); panel_3.add(omrtemplate); omrtemplate.setText(this.moodle.getOMRTemplate()); btnOpenOMRTemplate = new JButton(EmarkingDesktop.lang.getString("openomrfile")); btnOpenOMRTemplate.setEnabled(false); btnOpenOMRTemplate.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { JFileChooser chooser = new JFileChooser(); chooser.setDialogTitle(EmarkingDesktop.lang.getString("openfiletitle")); chooser.setDialogType(JFileChooser.OPEN_DIALOG); chooser.setFileFilter(new FileFilter() { @Override public String getDescription() { return "*.xtmpl"; } @Override public boolean accept(File arg0) { if (arg0.getName().endsWith(".xtmpl") || arg0.isDirectory()) return true; return false; } }); int retval = chooser.showOpenDialog(panel); if (retval == JFileChooser.APPROVE_OPTION) { omrtemplate.setText(chooser.getSelectedFile().getAbsolutePath()); } else { return; } } }); btnOpenOMRTemplate.setBounds(468, 136, 172, 27); panel_3.add(btnOpenOMRTemplate); lblMarkersTraining = new JLabel((String) EmarkingDesktop.lang.getString("markerstraining")); lblMarkersTraining.setHorizontalAlignment(SwingConstants.RIGHT); lblMarkersTraining.setBounds(0, 89, 119, 14); panel_3.add(lblMarkersTraining); chckbxMarkersTraining = new JCheckBox(EmarkingDesktop.lang.getString("markerstrainingfakestudents")); chckbxMarkersTraining.setBounds(125, 87, 333, 23); panel_3.add(chckbxMarkersTraining); btnOpenPdfFile.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { okButton.setEnabled(false); JFileChooser chooser = new JFileChooser(); chooser.setDialogTitle(EmarkingDesktop.lang.getString("openfiletitle")); chooser.setDialogType(JFileChooser.OPEN_DIALOG); chooser.setFileFilter(new FileFilter() { @Override public String getDescription() { return "*.pdf, *.zip"; } @Override public boolean accept(File arg0) { if (arg0.getName().endsWith(".zip") || arg0.getName().endsWith(".pdf") || arg0.isDirectory()) return true; return false; } }); int retval = chooser.showOpenDialog(panel); if (retval == JFileChooser.APPROVE_OPTION) { filename.setText(chooser.getSelectedFile().getAbsolutePath()); okButton.setEnabled(true); } else { return; } } }); JPanel panel_1 = new JPanel(); tabbedPane.addTab(EmarkingDesktop.lang.getString("advanced"), null, panel_1, null); panel_1.setLayout(null); JPanel panel_4 = new JPanel(); panel_4.setLayout(null); panel_4.setBorder(new LineBorder(new Color(0, 0, 0), 1, true)); panel_4.setBounds(10, 11, 665, 131); panel_1.add(panel_4); JLabel lblAdvancedOptions = new JLabel(EmarkingDesktop.lang.getString("advancedoptions")); lblAdvancedOptions.setBounds(10, 11, 233, 14); panel_4.add(lblAdvancedOptions); JLabel lblThreads = new JLabel(EmarkingDesktop.lang.getString("maxthreads")); lblThreads.setBounds(10, 38, 130, 14); panel_4.add(lblThreads); lblThreads.setHorizontalAlignment(SwingConstants.RIGHT); JLabel lblSomething = new JLabel(EmarkingDesktop.lang.getString("separatezipfiles")); lblSomething.setBounds(10, 73, 130, 14); panel_4.add(lblSomething); lblSomething.setHorizontalAlignment(SwingConstants.RIGHT); JLabel label = new JLabel(EmarkingDesktop.lang.getString("resolution")); label.setBounds(10, 105, 130, 14); panel_4.add(label); label.setHorizontalAlignment(SwingConstants.RIGHT); resolution = new JComboBox<Integer>(); resolution.setBounds(150, 99, 169, 27); panel_4.add(resolution); resolution.setModel(new DefaultComboBoxModel<Integer>(new Integer[] { 75, 100, 150, 300, 400, 500, 600 })); resolution.setSelectedIndex(2); this.resolution.setSelectedItem(this.moodle.getQrExtractor().getResolution()); maxZipSize = new JComboBox<String>(); maxZipSize.setBounds(150, 67, 169, 27); panel_4.add(maxZipSize); maxZipSize.setModel(new DefaultComboBoxModel<String>(new String[] { "<dynamic>", "2Mb", "4Mb", "8Mb", "16Mb", "32Mb", "64Mb", "128Mb", "256Mb", "512Mb", "1024Mb" })); maxZipSize.setSelectedIndex(6); this.maxZipSize.setSelectedItem(this.moodle.getMaxZipSizeString()); maxThreads = new JComboBox<Integer>(); maxThreads.setBounds(150, 32, 169, 27); panel_4.add(maxThreads); maxThreads.setModel(new DefaultComboBoxModel<Integer>(new Integer[] { 2, 4, 8, 16 })); maxThreads.setSelectedIndex(1); this.maxThreads.setSelectedItem(this.moodle.getQrExtractor().getMaxThreads()); JPanel panel_5 = new JPanel(); panel_5.setLayout(null); panel_5.setBorder(new LineBorder(new Color(0, 0, 0), 1, true)); panel_5.setBounds(10, 153, 665, 131); panel_1.add(panel_5); JLabel lblOMRoptions = new JLabel(EmarkingDesktop.lang.getString("omroptions")); lblOMRoptions.setBounds(10, 11, 233, 14); panel_5.add(lblOMRoptions); JLabel lblOMRthreshold = new JLabel(EmarkingDesktop.lang.getString("omrthreshold")); lblOMRthreshold.setHorizontalAlignment(SwingConstants.RIGHT); lblOMRthreshold.setBounds(10, 32, 130, 14); panel_5.add(lblOMRthreshold); JLabel lblShapeSize = new JLabel(EmarkingDesktop.lang.getString("omrshapesize")); lblShapeSize.setHorizontalAlignment(SwingConstants.RIGHT); lblShapeSize.setBounds(10, 99, 130, 14); panel_5.add(lblShapeSize); JLabel lblDensity = new JLabel(EmarkingDesktop.lang.getString("omrdensity")); lblDensity.setHorizontalAlignment(SwingConstants.RIGHT); lblDensity.setBounds(10, 70, 130, 14); panel_5.add(lblDensity); spinnerOMRthreshold = new JSpinner(); spinnerOMRthreshold.setBounds(150, 32, 169, 20); panel_5.add(spinnerOMRthreshold); spinnerOMRthreshold.setValue(this.moodle.getOMRthreshold()); spinnerOMRdensity = new JSpinner(); spinnerOMRdensity.setBounds(150, 67, 169, 20); panel_5.add(spinnerOMRdensity); spinnerOMRdensity.setValue(this.moodle.getOMRdensity()); spinnerOMRshapeSize = new JSpinner(); spinnerOMRshapeSize.setBounds(150, 99, 169, 20); panel_5.add(spinnerOMRshapeSize); spinnerOMRshapeSize.setValue(this.moodle.getOMRshapeSize()); JLabel lblAnonymousPercentage = new JLabel( "<html>" + EmarkingDesktop.lang.getString("anonymouspercentage") + "</html>"); lblAnonymousPercentage.setHorizontalAlignment(SwingConstants.RIGHT); lblAnonymousPercentage.setBounds(329, 32, 130, 27); panel_5.add(lblAnonymousPercentage); spinnerAnonymousPercentage = new JSpinner(); spinnerAnonymousPercentage.setBounds(469, 32, 169, 20); panel_5.add(spinnerAnonymousPercentage); spinnerAnonymousPercentage.setValue(this.moodle.getAnonymousPercentage()); JLabel lblAnonymousPercentageCustomPage = new JLabel( "<html>" + EmarkingDesktop.lang.getString("anonymouspercentagecustompage") + "</html>"); lblAnonymousPercentageCustomPage.setHorizontalAlignment(SwingConstants.RIGHT); lblAnonymousPercentageCustomPage.setBounds(329, 70, 130, 27); panel_5.add(lblAnonymousPercentageCustomPage); spinnerAnonymousPercentageCustomPage = new JSpinner(); spinnerAnonymousPercentageCustomPage.setBounds(469, 70, 169, 20); panel_5.add(spinnerAnonymousPercentageCustomPage); spinnerAnonymousPercentageCustomPage.setValue(this.moodle.getAnonymousPercentageCustomPage()); JLabel lblCustomPage = new JLabel( "<html>" + EmarkingDesktop.lang.getString("anonymouscustompage") + "</html>"); lblCustomPage.setHorizontalAlignment(SwingConstants.RIGHT); lblCustomPage.setBounds(329, 99, 130, 27); panel_5.add(lblCustomPage); spinnerCustomPage = new JSpinner(); spinnerCustomPage.setBounds(469, 99, 169, 20); panel_5.add(spinnerCustomPage); spinnerCustomPage.setValue(this.moodle.getAnonymousCustomPage()); }
From source file:com.fratello.longevity.smooth.AppGUI.java
private void initialize() { LabelMaxSize = 0;//from ww w.j ava 2s . co m ActiveGUI = true; GUI_Start = false; GUI_Pause = true; GUI_Stop = false; ran_at_least_once = false; execute(); initializeFields(); frmFileSystemSearch = new JFrame(); frmFileSystemSearch.setTitle("Smooth Longevity Fratello"); frmFileSystemSearch.setBounds(100, 100, 450, 300); frmFileSystemSearch.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frmFileSystemSearch.setResizable(false); UIManager.put("PopupMenu.border", BorderFactory.createLineBorder(Color.black, 1)); JMenuBar menuBar = new JMenuBar(); frmFileSystemSearch.setJMenuBar(menuBar); JMenu mnNewMenu = new JMenu("File"); menuBar.add(mnNewMenu); JMenuItem mntmFirst = new JMenuItem("Open Directory"); mntmFirst.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { openFileChooserDir(mntmFirst); } }); mnNewMenu.add(mntmFirst); JMenuItem mntmExit = new JMenuItem("Exit"); mntmExit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { frmFileSystemSearch.dispose(); } }); mnNewMenu.add(mntmExit); JMenu mnHelp = new JMenu("Help"); menuBar.add(mnHelp); JMenuItem mntmAbout = new JMenuItem("About"); mnHelp.add(mntmAbout); JMenuItem mntmTutorials = new JMenuItem("Tutorials"); mnHelp.add(mntmTutorials); JMenuItem mntmCheckForUpdates = new JMenuItem("Check for Updates"); mnHelp.add(mntmCheckForUpdates); String ppallink = "https://www.paypal.com/cgi-bin/webscr" + "?cmd=" + "_donations" + "&business=" + "8YUJNSN6KFV54" + "&lc=" + "US" + "&item_name=" + "Personal%20funds%20for%20programming%20at%20university" + "¤cy_code=" + "USD" + "&bn=" + "PP%2dDonationsBF" + "%3abtn_donateCC_LG%2egif%3aNonHosted"; JButton btnDonate = new JButton("Donate"); btnDonate.setToolTipText("<html>Open default Internet browser <br>(Chrome, FireFox, etc.)</html>"); btnDonate.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { openWebPage(ppallink); } }); btnDonate.setBounds(159, 176, 90, 25); menuBar.add(btnDonate); JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); frmFileSystemSearch.getContentPane().add(tabbedPane, BorderLayout.CENTER); // ---------------------------- JPanels ------------------------------ JPanel panel = new JPanel(); tabbedPane.addTab("Start Directory", null, panel, null); JPanel panel_1 = new JPanel(); tabbedPane.addTab("Search Setup", null, panel_1, null); panel_1.setLayout(null); JPanel panel_2 = new JPanel(); tabbedPane.addTab("Run Program", null, panel_2, null); panel_2.setLayout(null); JPanel panel_3 = new JPanel(); tabbedPane.addTab("Information", null, panel_3, null); panel_3.setBounds(10, 11, 409, 154); GridBagLayout gbl_panel_3 = new GridBagLayout(); gbl_panel_3.columnWidths = new int[] { 0, 0, 0 }; gbl_panel_3.rowHeights = new int[] { 0, 0, 0 }; gbl_panel_3.columnWeights = new double[] { 1.0, 1.0, 1.0 }; gbl_panel_3.rowWeights = new double[] { 0.0, 0.0, Double.MIN_VALUE }; panel_3.setLayout(gbl_panel_3); // ------------- Dynamic Update - Swingworker Components ------------- SentinelProgressBar = new JProgressBar(); SentinelProgressBar.setMaximumSize(new Dimension(146, 14)); SentinelProgressBar.setMaximum(1000); SentinelProgressBar.setBounds(74, 187, 146, 14); panel_2.add(SentinelProgressBar); SentinelProgressLabel = new JLabel(); SentinelProgressLabel.setToolTipText("Time needed to finish the program in progress"); SentinelProgressLabel.setBounds(333, 181, 86, 20); panel_2.add(SentinelProgressLabel); // ------------------------------------------------------------------- // ------------------------ JPanel Components ------------------------ JLabel lblCurrentDirectory = new JLabel("Current Directory"); panel.add(lblCurrentDirectory); userSelectedDirectories = new JTextField(); panel.add(userSelectedDirectories); userSelectedDirectories.setColumns(35); JButton btnBrowse = new JButton("Browse"); btnBrowse.setToolTipText("Locate directory in system"); btnBrowse.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { openFileChooserDir(btnBrowse); } }); panel.add(btnBrowse); JButton btnClear = new JButton("Clear"); btnClear.setToolTipText("Deletes the current directory shown"); btnClear.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { userSelectedDirectories.setText(""); clearSourceDirectory(); } }); panel.add(btnClear); // ------------------------------------------------------------------- // ----------------------- JPanel_1 Components ----------------------- // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Extension :: [Check Box] chckbxExt = new JCheckBox("Extension"); chckbxExt.setToolTipText("Check to ignore file extensions"); chckbxExt.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) cf.setUse("Ext", true); else if (e.getStateChange() == ItemEvent.DESELECTED) cf.setUse("Ext", false); } }); chckbxExt.setBounds(8, 15, 97, 23); panel_1.add(chckbxExt); // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Hash :: [Check Box] chckbxHash = new JCheckBox("Hash"); chckbxHash.setToolTipText("Check to compare by hashing files (FAST)"); chckbxHash.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) cf.setUse("Hash", true); else if (e.getStateChange() == ItemEvent.DESELECTED) cf.setUse("Hash", false); } }); chckbxHash.setBounds(8, 45, 97, 23); panel_1.add(chckbxHash); // Hash :: [Combo Box] comboBoxHash = new JComboBox<String>(); comboBoxHash.setToolTipText( "<html>Hash algorithm to use in file hashing <br>(note - SHA-512 may not be <br>supported by your computer)</html>"); comboBoxHash.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { @SuppressWarnings("unchecked") JComboBox<String> cb = (JComboBox<String>) e.getSource(); String UIselect = (String) cb.getSelectedItem(); cf.setHashString(UIselect); } }); comboBoxHash .setModel(new DefaultComboBoxModel<String>(new String[] { "MD5", "SHA-1", "SHA-256", "SHA-512" })); comboBoxHash.setBounds(150, 44, 75, 25); panel_1.add(comboBoxHash); // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Name :: [Check Box] chckbxName = new JCheckBox("Name"); chckbxName.setToolTipText("Name tool-tip goes here"); chckbxName.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) cf.setUse("Name", true); else if (e.getStateChange() == ItemEvent.DESELECTED) cf.setUse("Name", false); } }); chckbxName.setBounds(8, 75, 97, 23); panel_1.add(chckbxName); // Name :: [Text Field] namePercentMatchTextField = new JFormattedTextField(new Double(0.0d)); namePercentMatchTextField.setFormatterFactory(new DoubleDocListener(namePercentMatchTextField)); namePercentMatchTextField.getDocument() .addDocumentListener(new DoubleDocListener(namePercentMatchTextField)); namePercentMatchTextField.setToolTipText("Match file names by percentage [00.00-100.00]"); namePercentMatchTextField.setBounds(150, 74, 110, 25); panel_1.add(namePercentMatchTextField); namePercentMatchTextField.setColumns(10); // Name :: [Combo Box] comboBoxNames = new JComboBox<String>(); comboBoxNames.setToolTipText("Algorithm to compare names"); comboBoxNames.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { @SuppressWarnings("unchecked") JComboBox<String> cb = (JComboBox<String>) e.getSource(); String UIselect = (String) cb.getSelectedItem(); cf.setMatchingAlgorithm(UIselect); } }); comboBoxNames.setModel(new DefaultComboBoxModel<String>(new String[] { "Bitap", "Cosine", "DamerauLevenshtein", "DynamicTimeWarpingStandard1", "DynamicTimeWarpingStandard2", "Hamming", "Hirschberg", "JaccardIndex", "JaroWinkler", "Levenshtein", "NeedlemanWunsch", "SmithWaterman", "SorensenSimilarityIndex", "WagnerFischer" })); comboBoxNames.setBounds(265, 74, 150, 25); panel_1.add(comboBoxNames); // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Size :: [Check Box] chckbxSize = new JCheckBox("Size"); chckbxSize.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) cf.setUse("Size", true); else if (e.getStateChange() == ItemEvent.DESELECTED) cf.setUse("Size", false); } }); chckbxSize.setBounds(8, 105, 97, 23); panel_1.add(chckbxSize); // Size :: [Text Field] sizePercentMatchTextField = new JFormattedTextField(new Double(0.0d)); sizePercentMatchTextField.setFormatterFactory(new DoubleDocListener(sizePercentMatchTextField)); sizePercentMatchTextField.getDocument() .addDocumentListener(new DoubleDocListener(sizePercentMatchTextField)); sizePercentMatchTextField.setToolTipText("Match file sizes by percentage [00.00-100.00]"); sizePercentMatchTextField.setBounds(150, 104, 110, 25); panel_1.add(sizePercentMatchTextField); sizePercentMatchTextField.setColumns(10); // Size :: [Combo Box] comboBoxSize = new JComboBox<String>(); comboBoxSize.setToolTipText("Specify byte grouping"); comboBoxSize.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { @SuppressWarnings("unchecked") JComboBox<String> cb = (JComboBox<String>) e.getSource(); String UIselect = (String) cb.getSelectedItem(); cf.setMetricSize(UIselect); } }); comboBoxSize.setModel( new DefaultComboBoxModel<String>(new String[] { "BYTE", "KILOBYTE", "MEGABYTE", "GIGABYTE" })); comboBoxSize.setBounds(265, 104, 150, 25); panel_1.add(comboBoxSize); // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Thorough :: [Check Box] chckbxThorough = new JCheckBox("Thorough"); chckbxThorough.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) cf.setUse("Thorough", true); else if (e.getStateChange() == ItemEvent.DESELECTED) cf.setUse("Thorough", false); } }); chckbxThorough.setToolTipText("Check byte by byte"); chckbxThorough.setBounds(8, 135, 97, 23); panel_1.add(chckbxThorough); // Thorough :: [Text Field] thoroughPercentMatchTextField = new JFormattedTextField(new Double(0.0d)); thoroughPercentMatchTextField.setFormatterFactory(new DoubleDocListener(thoroughPercentMatchTextField)); thoroughPercentMatchTextField.getDocument() .addDocumentListener(new DoubleDocListener(thoroughPercentMatchTextField)); thoroughPercentMatchTextField.setToolTipText("Match file sizes by percentage [00.00-100.00]"); thoroughPercentMatchTextField.setBounds(150, 134, 110, 25); panel_1.add(thoroughPercentMatchTextField); thoroughPercentMatchTextField.setColumns(10); // Thorough :: [Check Box] chckbxExitFast = new JCheckBox("Exit Fast"); chckbxExitFast.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) cf.setThoroughExitFirstByteMisMatch(true); else if (e.getStateChange() == ItemEvent.DESELECTED) cf.setThoroughExitFirstByteMisMatch(false); } }); chckbxExitFast.setToolTipText("<html>When the first byte comparison <br>is a mis-match then stop</html>"); chckbxExitFast.setBounds(265, 138, 105, 16); panel_1.add(chckbxExitFast); // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ JButton btnSaveSearchSettings = new JButton("Save Search Settings"); btnSaveSearchSettings.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { pollSearchSettings(); cf.saveObject(); // System.out.println(cf.toString()); // debug } }); btnSaveSearchSettings.setBounds(292, 181, 140, 25); panel_1.add(btnSaveSearchSettings); JButton btnLoadSettings = new JButton("Load Settings"); btnLoadSettings.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { if (!cf.loadObject()) cf.setDefaultSettings(); cacheUpdateGUISettings(); } }); btnLoadSettings.setBounds(148, 181, 140, 25); panel_1.add(btnLoadSettings); JButton btnDefaultSettings = new JButton("Use Default Settings"); btnDefaultSettings.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { cf.setDefaultSettings(); cacheUpdateGUISettings(); } }); btnDefaultSettings.setBounds(4, 181, 140, 25); panel_1.add(btnDefaultSettings); // ------------------------------------------------------------------- // ----------------------- JPanel_2 Components ----------------------- JLabel labelStatus = new JLabel("Progress"); labelStatus.setBounds(10, 187, 54, 14); panel_2.add(labelStatus); JButton btnStart = new JButton("Start"); btnStart.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { pollSearchSettings(); if (!ran_at_least_once) ran_at_least_once = true; else { SentinelProgressBar.setValue(0); SentinelProgressLabel.setText("Waiting..."); } try { if (multiSelection == null) { JOptionPane.showMessageDialog(btnStart, "Please enter at least one directory.", "Press OK to continue", JOptionPane.PLAIN_MESSAGE); return; } setSourceDirectory(multiSelection); GUI_Start = true; } catch (Exception err) { err.printStackTrace(); } } }); btnStart.setBounds(40, 153, 89, 23); panel_2.add(btnStart); JButton btnStop = new JButton("Stop"); btnStop.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { GUI_Stop = true; } }); btnStop.setBounds(169, 153, 89, 23); panel_2.add(btnStop); JButton btnNewButton = new JButton("Pause"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { GUI_Pause = true; } }); btnNewButton.setBounds(298, 153, 89, 23); panel_2.add(btnNewButton); JCheckBox chckbxDeleteDuplicateFiles = new JCheckBox("Delete duplicate files"); chckbxDeleteDuplicateFiles.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { deleteCopyResults = true; } }); chckbxDeleteDuplicateFiles.setBounds(230, 10, 150, 16); panel_2.add(chckbxDeleteDuplicateFiles); JCheckBox chckbxLogDuplicateFiles = new JCheckBox("Save duplicates to file"); chckbxLogDuplicateFiles.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { saveCopyResults = true; } }); chckbxLogDuplicateFiles.setBounds(230, 36, 150, 16); panel_2.add(chckbxLogDuplicateFiles); // ------------------------------------------------------------------- // ----------------------- JPanel_3 Components ----------------------- JLabel lblAbout = new JLabel("About"); GridBagConstraints gbc_lblAbout = new GridBagConstraints(); gbc_lblAbout.insets = new Insets(0, 0, 5, 5); gbc_lblAbout.gridx = 0; gbc_lblAbout.gridy = 0; panel_3.add(lblAbout, gbc_lblAbout); JLabel lblTutorials = new JLabel("Tutorials"); GridBagConstraints gbc_lblTutorials = new GridBagConstraints(); gbc_lblTutorials.insets = new Insets(0, 0, 5, 5); gbc_lblTutorials.gridx = 1; gbc_lblTutorials.gridy = 0; panel_3.add(lblTutorials, gbc_lblTutorials); JLabel lblUpdates = new JLabel("Updates"); GridBagConstraints gbc_lblUpdates = new GridBagConstraints(); gbc_lblUpdates.insets = new Insets(0, 0, 5, 0); gbc_lblUpdates.gridx = 2; gbc_lblUpdates.gridy = 0; panel_3.add(lblUpdates, gbc_lblUpdates); JButton btnInformation = new JButton("Information"); btnInformation.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { openWebPage(ppallink); } }); GridBagConstraints gbc_btnInformation = new GridBagConstraints(); gbc_btnInformation.insets = new Insets(0, 0, 0, 5); gbc_btnInformation.gridx = 0; gbc_btnInformation.gridy = 1; panel_3.add(btnInformation, gbc_btnInformation); JButton btnExamples = new JButton("Examples"); btnExamples.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { openWebPage(ppallink); } }); GridBagConstraints gbc_btnExamples = new GridBagConstraints(); gbc_btnExamples.insets = new Insets(0, 0, 0, 5); gbc_btnExamples.gridx = 1; gbc_btnExamples.gridy = 1; panel_3.add(btnExamples, gbc_btnExamples); JButton btnCheckNow = new JButton("Check Now"); btnCheckNow.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { openWebPage(ppallink); } }); GridBagConstraints gbc_btnCheckNow = new GridBagConstraints(); gbc_btnCheckNow.gridx = 2; gbc_btnCheckNow.gridy = 1; panel_3.add(btnCheckNow, gbc_btnCheckNow); }
From source file:com.juanhg.icewalker.IceWalkerApplet.java
private void autogeneratedCode() { JPanel panel_control = new JPanel(); panel_control.setBorder(new CompoundBorder(new EtchedBorder(EtchedBorder.RAISED, null, null), new BevelBorder(BevelBorder.RAISED, null, null, null, null))); JPanel panelInputs = new JPanel(); panelInputs.setToolTipText(""); panelInputs.setBorder(new MatteBorder(1, 1, 1, 1, (Color) new Color(0, 0, 0))); JPanel panelTiempo = new JPanel(); panelTiempo.setToolTipText(""); panelTiempo.setBorder(new MatteBorder(1, 1, 1, 1, (Color) new Color(0, 0, 0))); JPanel panelOutputs = new JPanel(); panelOutputs.setToolTipText(""); panelOutputs.setBorder(new MatteBorder(1, 1, 1, 1, (Color) new Color(0, 0, 0))); JPanel panelTitleOutputs = new JPanel(); panelTitleOutputs.setBorder(new BevelBorder(BevelBorder.RAISED, null, null, null, null)); JLabel labelOutputData = new JLabel("Datos de la Simulaci\u00F3n"); labelOutputData.setFont(new Font("Tahoma", Font.PLAIN, 14)); panelTitleOutputs.add(labelOutputData); lblPhase = new JLabel("Velocidad:"); lblPhase.setFont(new Font("Tahoma", Font.PLAIN, 14)); lblVValue = new JLabel(); lblVValue.setText("0"); lblVValue.setFont(new Font("Tahoma", Font.PLAIN, 14)); JLabel lblPosicion = new JLabel("Posici\u00F3n:"); lblPosicion.setFont(new Font("Tahoma", Font.PLAIN, 14)); lblPositionValue = new JLabel(); lblPositionValue.setText("0"); lblPositionValue.setFont(new Font("Tahoma", Font.PLAIN, 14)); GroupLayout gl_panelOutputs = new GroupLayout(panelOutputs); gl_panelOutputs/* w w w. ja v a2 s . c o m*/ .setHorizontalGroup(gl_panelOutputs.createParallelGroup(Alignment.LEADING) .addComponent(panelTitleOutputs, GroupLayout.DEFAULT_SIZE, 394, Short.MAX_VALUE) .addGroup(gl_panelOutputs.createSequentialGroup().addContainerGap() .addComponent(lblPhase, GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE).addGap(26) .addComponent(lblVValue, GroupLayout.PREFERRED_SIZE, 147, GroupLayout.PREFERRED_SIZE) .addContainerGap(130, Short.MAX_VALUE)) .addGroup(gl_panelOutputs.createSequentialGroup().addContainerGap() .addComponent(lblPosicion, GroupLayout.PREFERRED_SIZE, 81, GroupLayout.PREFERRED_SIZE) .addGap(26).addComponent(lblPositionValue, GroupLayout.PREFERRED_SIZE, 147, GroupLayout.PREFERRED_SIZE) .addContainerGap(130, Short.MAX_VALUE))); gl_panelOutputs .setVerticalGroup(gl_panelOutputs.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelOutputs.createSequentialGroup() .addComponent(panelTitleOutputs, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.UNRELATED) .addGroup(gl_panelOutputs.createParallelGroup(Alignment.BASELINE) .addComponent(lblPhase).addComponent(lblVValue)) .addPreferredGap(ComponentPlacement.UNRELATED) .addGroup(gl_panelOutputs.createParallelGroup(Alignment.LEADING) .addComponent(lblPosicion, GroupLayout.PREFERRED_SIZE, 17, GroupLayout.PREFERRED_SIZE) .addComponent(lblPositionValue, GroupLayout.PREFERRED_SIZE, 17, GroupLayout.PREFERRED_SIZE)) .addGap(63))); panelOutputs.setLayout(gl_panelOutputs); panel_1 = new JPanel(); panel_1.setBorder(new LineBorder(new Color(0, 0, 0))); GroupLayout gl_panel_control = new GroupLayout(panel_control); gl_panel_control.setHorizontalGroup(gl_panel_control.createParallelGroup(Alignment.LEADING) .addGroup(gl_panel_control.createSequentialGroup().addContainerGap().addGroup(gl_panel_control .createParallelGroup(Alignment.LEADING) .addGroup(gl_panel_control.createSequentialGroup() .addGroup(gl_panel_control.createParallelGroup(Alignment.TRAILING, false) .addComponent(panelOutputs, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelInputs, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) .addGroup(Alignment.TRAILING, gl_panel_control.createSequentialGroup() .addGroup(gl_panel_control.createParallelGroup(Alignment.TRAILING) .addComponent(panel_1, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 404, Short.MAX_VALUE) .addComponent(panelTiempo, GroupLayout.DEFAULT_SIZE, 404, Short.MAX_VALUE)) .addContainerGap())))); gl_panel_control.setVerticalGroup(gl_panel_control.createParallelGroup(Alignment.LEADING) .addGroup(gl_panel_control.createSequentialGroup().addContainerGap() .addComponent(panelInputs, GroupLayout.PREFERRED_SIZE, 141, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(panelOutputs, GroupLayout.PREFERRED_SIZE, 103, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(panelTiempo, GroupLayout.PREFERRED_SIZE, 271, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED, 15, Short.MAX_VALUE).addComponent(panel_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addContainerGap())); JLabel lblNewLabel = new JLabel("GNU GENERAL PUBLIC LICENSE"); panel_1.add(lblNewLabel); btnLaunchSimulation = new JButton("Iniciar"); btnLaunchSimulation.setFont(new Font("Tahoma", Font.PLAIN, 16)); btnLaunchSimulation.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { btnLaunchSimulationEvent(event); } }); panel = new JPanel(); panel.setBorder(new BevelBorder(BevelBorder.RAISED, null, null, null, null)); label = new JLabel("Datos de la Simulaci\u00F3n"); label.setFont(new Font("Tahoma", Font.PLAIN, 14)); panel.add(label); btnBanana = new JButton(""); btnBanana.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { btnBananaEvent(); } }); bananaImage = loadImage(banana); btnBanana.setIcon(new ImageIcon(bananaImage)); btnBurger = new JButton(""); btnBurger.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { btnBurgerEvent(); } }); burgerImage = loadImage(burger); btnBurger.setIcon(new ImageIcon(burgerImage)); btnCookie = new JButton(""); btnCookie.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { btnCookieEvent(); } }); cookieImage = loadImage(cookie); btnCookie.setIcon(new ImageIcon(cookieImage)); btnCarrot = new JButton(""); carrotImage = loadImage(carrot); btnCarrot.setIcon(new ImageIcon(carrotImage)); btnCarrot.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { btnCarrotEvent(); } }); JLabel lblNewLabel_1 = new JLabel("30 cal/100g"); JLabel lblCalg_2 = new JLabel("734 cal/100g"); lblCalg = new JLabel("90 cal/100g"); lblCalg_1 = new JLabel("433 cal/100g"); GroupLayout gl_panelTiempo = new GroupLayout(panelTiempo); gl_panelTiempo.setHorizontalGroup(gl_panelTiempo.createParallelGroup(Alignment.LEADING) .addComponent(panel, GroupLayout.DEFAULT_SIZE, 402, Short.MAX_VALUE) .addGroup(gl_panelTiempo.createSequentialGroup().addGap(17).addGroup(gl_panelTiempo .createParallelGroup(Alignment.LEADING, false) .addComponent(btnLaunchSimulation, Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(gl_panelTiempo.createSequentialGroup() .addGroup(gl_panelTiempo.createParallelGroup(Alignment.TRAILING) .addComponent(btnCarrot, GroupLayout.PREFERRED_SIZE, 81, GroupLayout.PREFERRED_SIZE) .addComponent(lblNewLabel_1, GroupLayout.PREFERRED_SIZE, 72, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(ComponentPlacement.UNRELATED) .addGroup(gl_panelTiempo.createParallelGroup(Alignment.TRAILING) .addComponent(btnBanana).addComponent(lblCalg, GroupLayout.PREFERRED_SIZE, 72, GroupLayout.PREFERRED_SIZE)) .addGap(18) .addGroup(gl_panelTiempo.createParallelGroup(Alignment.TRAILING) .addComponent(btnCookie, GroupLayout.PREFERRED_SIZE, 81, GroupLayout.PREFERRED_SIZE) .addComponent(lblCalg_1, GroupLayout.PREFERRED_SIZE, 72, GroupLayout.PREFERRED_SIZE)) .addGroup(gl_panelTiempo.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelTiempo.createSequentialGroup().addGap(6).addComponent( btnBurger, GroupLayout.PREFERRED_SIZE, 81, GroupLayout.PREFERRED_SIZE)) .addGroup(gl_panelTiempo.createSequentialGroup().addGap(18).addComponent( lblCalg_2, GroupLayout.PREFERRED_SIZE, 72, GroupLayout.PREFERRED_SIZE))))) .addContainerGap(24, Short.MAX_VALUE))); gl_panelTiempo.setVerticalGroup(gl_panelTiempo.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelTiempo.createSequentialGroup() .addComponent(panel, GroupLayout.PREFERRED_SIZE, 31, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.UNRELATED) .addGroup(gl_panelTiempo.createParallelGroup(Alignment.LEADING).addGroup(gl_panelTiempo .createSequentialGroup() .addGroup(gl_panelTiempo.createParallelGroup(Alignment.LEADING) .addComponent(btnCarrot, GroupLayout.PREFERRED_SIZE, 69, GroupLayout.PREFERRED_SIZE) .addComponent(btnCookie, GroupLayout.PREFERRED_SIZE, 69, GroupLayout.PREFERRED_SIZE) .addComponent(btnBurger, GroupLayout.PREFERRED_SIZE, 69, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(ComponentPlacement.RELATED) .addGroup(gl_panelTiempo.createParallelGroup(Alignment.LEADING, false) .addComponent(lblNewLabel_1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(gl_panelTiempo.createParallelGroup(Alignment.BASELINE) .addComponent(lblCalg_2, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(lblCalg_1, GroupLayout.DEFAULT_SIZE, 27, Short.MAX_VALUE)) .addComponent(lblCalg, GroupLayout.DEFAULT_SIZE, 27, Short.MAX_VALUE))) .addComponent(btnBanana, GroupLayout.PREFERRED_SIZE, 69, GroupLayout.PREFERRED_SIZE)) .addGap(30).addComponent(btnLaunchSimulation, GroupLayout.PREFERRED_SIZE, 62, GroupLayout.PREFERRED_SIZE) .addContainerGap(33, Short.MAX_VALUE))); panelTiempo.setLayout(gl_panelTiempo); JLabel LabelStrength = new JLabel("Fuerza"); LabelStrength.setFont(new Font("Tahoma", Font.PLAIN, 14)); JLabel labelStaticFriction = new JLabel("Roz. Est\u00E1tico"); labelStaticFriction.setFont(new Font("Tahoma", Font.PLAIN, 14)); JLabel labelDynamicFriction = new JLabel("Roz. Din\u00E1mico"); labelDynamicFriction.setFont(new Font("Tahoma", Font.PLAIN, 14)); JPanel panelTitle = new JPanel(); panelTitle.setBorder(new BevelBorder(BevelBorder.RAISED, null, null, null, null)); lblStaticFrictionValue = new JLabel("0.2"); lblStaticFrictionValue.setFont(new Font("Tahoma", Font.PLAIN, 14)); lblDynamicFrictionValue = new JLabel("0.1"); lblDynamicFrictionValue.setFont(new Font("Tahoma", Font.PLAIN, 14)); lblStregthValue = new JLabel("100"); lblStregthValue.setFont(new Font("Tahoma", Font.PLAIN, 14)); sliderStrength = new JSlider(); sliderStrength.setMinorTickSpacing(1); sliderStrength.setMinimum(1); sliderStrength.setMaximum(300); sliderStrength.setValue(100); sliderStrength.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent event) { sliderStrenghtEvent(); } }); sliderStaticFriction = new JSlider(); sliderStaticFriction.setMinimum(15); sliderStaticFriction.setMaximum(80); sliderStaticFriction.setMinorTickSpacing(1); sliderStaticFriction.setValue(20); sliderStaticFriction.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { sliderStaticFrictionEvent(); } }); sliderDynamicFriction = new JSlider(); sliderDynamicFriction.setValue(10); sliderDynamicFriction.setMaximum(15); sliderDynamicFriction.setMinimum(5); sliderDynamicFriction.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { sliderDynamicFrictionEvent(); } }); sliderDynamicFriction.setMinorTickSpacing(1); GroupLayout gl_panelInputs = new GroupLayout(panelInputs); gl_panelInputs.setHorizontalGroup(gl_panelInputs.createParallelGroup(Alignment.TRAILING) .addGroup(gl_panelInputs.createSequentialGroup().addContainerGap() .addGroup(gl_panelInputs.createParallelGroup(Alignment.TRAILING, false) .addComponent(labelDynamicFriction, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(LabelStrength, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(labelStaticFriction, Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 120, Short.MAX_VALUE)) .addGap(18) .addGroup(gl_panelInputs.createParallelGroup(Alignment.LEADING) .addComponent(lblStregthValue, GroupLayout.PREFERRED_SIZE, 42, GroupLayout.PREFERRED_SIZE) .addComponent(lblStaticFrictionValue, GroupLayout.PREFERRED_SIZE, 56, GroupLayout.PREFERRED_SIZE) .addComponent(lblDynamicFrictionValue, GroupLayout.PREFERRED_SIZE, 56, GroupLayout.PREFERRED_SIZE)) .addGap(18) .addGroup(gl_panelInputs.createParallelGroup(Alignment.LEADING) .addComponent(sliderStaticFriction, GroupLayout.PREFERRED_SIZE, 146, GroupLayout.PREFERRED_SIZE) .addComponent(sliderStrength, GroupLayout.PREFERRED_SIZE, 146, GroupLayout.PREFERRED_SIZE) .addComponent(sliderDynamicFriction, GroupLayout.PREFERRED_SIZE, 146, GroupLayout.PREFERRED_SIZE)) .addGap(26)) .addComponent(panelTitle, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 394, Short.MAX_VALUE)); gl_panelInputs .setVerticalGroup(gl_panelInputs.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelInputs.createSequentialGroup() .addComponent(panelTitle, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addGap(8) .addGroup(gl_panelInputs.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelInputs.createParallelGroup(Alignment.BASELINE) .addComponent(LabelStrength).addComponent(lblStregthValue, GroupLayout.PREFERRED_SIZE, 17, GroupLayout.PREFERRED_SIZE)) .addComponent(sliderStrength, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(ComponentPlacement.RELATED) .addGroup(gl_panelInputs.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelInputs.createParallelGroup(Alignment.BASELINE) .addComponent(labelStaticFriction) .addComponent(lblStaticFrictionValue, GroupLayout.PREFERRED_SIZE, 17, GroupLayout.PREFERRED_SIZE)) .addComponent(sliderStaticFriction, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGap(11) .addGroup(gl_panelInputs.createParallelGroup(Alignment.LEADING) .addComponent(labelDynamicFriction) .addComponent(lblDynamicFrictionValue, GroupLayout.PREFERRED_SIZE, 17, GroupLayout.PREFERRED_SIZE) .addComponent(sliderDynamicFriction, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGap(75))); JLabel lblDatosDeEntrada = new JLabel("Datos de Entrada"); lblDatosDeEntrada.setFont(new Font("Tahoma", Font.PLAIN, 14)); panelTitle.add(lblDatosDeEntrada); panelInputs.setLayout(gl_panelInputs); panel_control.setLayout(gl_panel_control); JPanel panel_visualizar = new JPanel(); GroupLayout groupLayout = new GroupLayout(getContentPane()); groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.LEADING) .addGroup(groupLayout.createSequentialGroup().addContainerGap() .addComponent(panel_control, GroupLayout.PREFERRED_SIZE, 432, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(panel_visualizar, GroupLayout.DEFAULT_SIZE, 592, Short.MAX_VALUE) .addContainerGap())); groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.TRAILING) .addGroup(groupLayout.createSequentialGroup().addContainerGap() .addGroup(groupLayout.createParallelGroup(Alignment.TRAILING) .addComponent(panel_visualizar, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 598, Short.MAX_VALUE) .addComponent(panel_control, Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 598, Short.MAX_VALUE)) .addContainerGap())); GridBagLayout gbl_panel_visualizar = new GridBagLayout(); gbl_panel_visualizar.columnWidths = new int[] { 0, 0 }; gbl_panel_visualizar.rowHeights = new int[] { 0, 0, 0 }; gbl_panel_visualizar.columnWeights = new double[] { 1.0, Double.MIN_VALUE }; gbl_panel_visualizar.rowWeights = new double[] { 1.0, 1.0, Double.MIN_VALUE }; panel_visualizar.setLayout(gbl_panel_visualizar); JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); GridBagConstraints gbc_tabbedPane = new GridBagConstraints(); gbc_tabbedPane.gridheight = 2; gbc_tabbedPane.fill = GridBagConstraints.BOTH; gbc_tabbedPane.gridx = 0; gbc_tabbedPane.gridy = 0; panel_visualizar.add(tabbedPane, gbc_tabbedPane); panelSimulation = new JPanelGrafica(); tabbedPane.addTab("Simulacin", null, panelSimulation, null); panelSimulation.setBackground(Color.WHITE); getContentPane().setLayout(groupLayout); }
From source file:com.juanhg.angularmdisk.AngularMDiskApplet.java
private void autogeneratedCode() { JPanel panel_control = new JPanel(); panel_control.setBorder(new CompoundBorder(new EtchedBorder(EtchedBorder.RAISED, null, null), new BevelBorder(BevelBorder.RAISED, null, null, null, null))); JPanel panelInputs = new JPanel(); panelInputs.setToolTipText(""); panelInputs.setBorder(new MatteBorder(1, 1, 1, 1, (Color) new Color(0, 0, 0))); JPanel panelTiempo = new JPanel(); panelTiempo.setToolTipText(""); panelTiempo.setBorder(new MatteBorder(1, 1, 1, 1, (Color) new Color(0, 0, 0))); btnPhase1 = new JButton("Lanzar Insecto"); btnPhase1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { btnPhase1Event();/*from ww w.j a va2s. co m*/ } }); btnPhase1.setEnabled(false); JPanel panelOutputs = new JPanel(); panelOutputs.setToolTipText(""); panelOutputs.setBorder(new MatteBorder(1, 1, 1, 1, (Color) new Color(0, 0, 0))); JPanel panelTitleOutputs = new JPanel(); panelTitleOutputs.setBorder(new BevelBorder(BevelBorder.RAISED, null, null, null, null)); JLabel labelOutputData = new JLabel("Datos de la Simulaci\u00F3n"); labelOutputData.setFont(new Font("Tahoma", Font.PLAIN, 14)); panelTitleOutputs.add(labelOutputData); lblDiskW = new JLabel("Velocidad Disco:"); lblDiskW.setFont(new Font("Tahoma", Font.PLAIN, 14)); lblDiskWValue = new JLabel(); lblDiskWValue.setText("0"); lblDiskWValue.setFont(new Font("Tahoma", Font.PLAIN, 14)); lblCriticRadius = new JLabel("Radio Cr\u00EDtico:"); lblCriticRadius.setFont(new Font("Tahoma", Font.PLAIN, 14)); lblCriticRadiusValue = new JLabel(); lblCriticRadiusValue.setText("0"); lblCriticRadiusValue.setFont(new Font("Tahoma", Font.PLAIN, 14)); GroupLayout gl_panelOutputs = new GroupLayout(panelOutputs); gl_panelOutputs.setHorizontalGroup(gl_panelOutputs.createParallelGroup(Alignment.LEADING) .addComponent(panelTitleOutputs, GroupLayout.DEFAULT_SIZE, 394, Short.MAX_VALUE) .addGroup(gl_panelOutputs.createSequentialGroup().addContainerGap() .addGroup(gl_panelOutputs.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelOutputs.createSequentialGroup() .addComponent(lblCriticRadius, GroupLayout.PREFERRED_SIZE, 119, GroupLayout.PREFERRED_SIZE) .addGap(6)) .addGroup(gl_panelOutputs.createSequentialGroup() .addComponent(lblDiskW, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(26))) .addGroup(gl_panelOutputs.createParallelGroup(Alignment.LEADING) .addComponent(lblDiskWValue, GroupLayout.PREFERRED_SIZE, 147, GroupLayout.PREFERRED_SIZE) .addComponent(lblCriticRadiusValue, GroupLayout.PREFERRED_SIZE, 147, GroupLayout.PREFERRED_SIZE)) .addContainerGap(112, Short.MAX_VALUE))); gl_panelOutputs .setVerticalGroup(gl_panelOutputs.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelOutputs.createSequentialGroup() .addComponent(panelTitleOutputs, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.UNRELATED) .addGroup(gl_panelOutputs.createParallelGroup(Alignment.BASELINE) .addComponent(lblDiskW).addComponent(lblDiskWValue)) .addPreferredGap(ComponentPlacement.RELATED) .addGroup(gl_panelOutputs.createParallelGroup(Alignment.BASELINE) .addComponent(lblCriticRadius, GroupLayout.PREFERRED_SIZE, 17, GroupLayout.PREFERRED_SIZE) .addComponent(lblCriticRadiusValue, GroupLayout.PREFERRED_SIZE, 17, GroupLayout.PREFERRED_SIZE)) .addGap(121))); panelOutputs.setLayout(gl_panelOutputs); panel_1 = new JPanel(); panel_1.setBorder(new LineBorder(new Color(0, 0, 0))); GroupLayout gl_panel_control = new GroupLayout(panel_control); gl_panel_control.setHorizontalGroup(gl_panel_control.createParallelGroup(Alignment.LEADING) .addGroup(gl_panel_control.createSequentialGroup().addContainerGap().addGroup(gl_panel_control .createParallelGroup(Alignment.LEADING) .addGroup(gl_panel_control.createSequentialGroup() .addGroup(gl_panel_control.createParallelGroup(Alignment.TRAILING) .addComponent(panelInputs, GroupLayout.PREFERRED_SIZE, 396, GroupLayout.PREFERRED_SIZE) .addComponent(panelOutputs, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 396, Short.MAX_VALUE) .addComponent(panelTiempo, GroupLayout.DEFAULT_SIZE, 396, Short.MAX_VALUE)) .addGap(18)) .addGroup(gl_panel_control.createSequentialGroup() .addComponent(panel_1, GroupLayout.PREFERRED_SIZE, 397, GroupLayout.PREFERRED_SIZE) .addContainerGap(17, Short.MAX_VALUE))))); gl_panel_control.setVerticalGroup(gl_panel_control.createParallelGroup(Alignment.LEADING) .addGroup(gl_panel_control.createSequentialGroup().addContainerGap() .addComponent(panelInputs, GroupLayout.PREFERRED_SIZE, 202, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(panelOutputs, GroupLayout.PREFERRED_SIZE, 103, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(panelTiempo, GroupLayout.PREFERRED_SIZE, 210, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED, 15, Short.MAX_VALUE).addComponent(panel_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addContainerGap())); JLabel lblNewLabel = new JLabel("GNU GENERAL PUBLIC LICENSE"); panel_1.add(lblNewLabel); rdbtnCam1 = new JRadioButton("C\u00E1mara Fija"); rdbtnCam1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { rdbtnCam1Event(); } }); rdbtnCam1.setSelected(true); rdbtnCam2 = new JRadioButton("C\u00E1mara M\u00F3vil"); rdbtnCam2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { rdbtnCam2Event(); } }); btnLaunchSimulation = new JButton("Iniciar"); btnLaunchSimulation.setFont(new Font("Tahoma", Font.PLAIN, 16)); btnLaunchSimulation.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { btnLaunchSimulationEvent(event); } }); btnPauseContinue = new JButton("Pausar"); btnPauseContinue.setFont(new Font("Tahoma", Font.PLAIN, 16)); btnPauseContinue.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { btnPauseContinueEvent(event); } }); panel = new JPanel(); panel.setBorder(new BevelBorder(BevelBorder.RAISED, null, null, null, null)); label = new JLabel("Datos de la Simulaci\u00F3n"); label.setFont(new Font("Tahoma", Font.PLAIN, 14)); panel.add(label); GroupLayout gl_panelTiempo = new GroupLayout(panelTiempo); gl_panelTiempo.setHorizontalGroup(gl_panelTiempo.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelTiempo.createSequentialGroup().addContainerGap() .addGroup(gl_panelTiempo.createParallelGroup(Alignment.LEADING, false) .addComponent(btnPhase1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btnLaunchSimulation, GroupLayout.DEFAULT_SIZE, 176, Short.MAX_VALUE)) .addGroup(gl_panelTiempo.createParallelGroup(Alignment.LEADING).addGroup(gl_panelTiempo .createSequentialGroup().addGap(52) .addGroup(gl_panelTiempo.createParallelGroup(Alignment.LEADING) .addComponent(rdbtnCam2).addComponent(rdbtnCam1, GroupLayout.PREFERRED_SIZE, 113, GroupLayout.PREFERRED_SIZE))) .addGroup(gl_panelTiempo.createSequentialGroup().addGap(21).addComponent( btnPauseContinue, GroupLayout.PREFERRED_SIZE, 168, GroupLayout.PREFERRED_SIZE))) .addContainerGap(47, Short.MAX_VALUE)) .addComponent(panel, Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 394, Short.MAX_VALUE)); gl_panelTiempo.setVerticalGroup(gl_panelTiempo.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelTiempo.createSequentialGroup() .addComponent(panel, GroupLayout.PREFERRED_SIZE, 31, GroupLayout.PREFERRED_SIZE).addGap(22) .addGroup(gl_panelTiempo.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelTiempo.createSequentialGroup().addComponent(rdbtnCam1) .addPreferredGap(ComponentPlacement.RELATED).addComponent(rdbtnCam2)) .addComponent(btnPhase1, GroupLayout.PREFERRED_SIZE, 58, GroupLayout.PREFERRED_SIZE)) .addGap(18) .addGroup(gl_panelTiempo.createParallelGroup(Alignment.LEADING) .addComponent(btnPauseContinue, GroupLayout.PREFERRED_SIZE, 62, GroupLayout.PREFERRED_SIZE) .addComponent(btnLaunchSimulation, GroupLayout.PREFERRED_SIZE, 62, GroupLayout.PREFERRED_SIZE)))); panelTiempo.setLayout(gl_panelTiempo); JLabel LabelBugMass = new JLabel("Masa del Insecto"); LabelBugMass.setFont(new Font("Tahoma", Font.PLAIN, 14)); JLabel labelFallRadio = new JLabel("Radio de Ca\u00EDda"); labelFallRadio.setFont(new Font("Tahoma", Font.PLAIN, 14)); JLabel labelBugVelocity = new JLabel("Velocidad del Insecto"); labelBugVelocity.setFont(new Font("Tahoma", Font.PLAIN, 14)); JLabel labelDiskVelocity = new JLabel("Velocidad del Disco"); labelDiskVelocity.setFont(new Font("Tahoma", Font.PLAIN, 14)); JPanel panelTitle = new JPanel(); panelTitle.setBorder(new BevelBorder(BevelBorder.RAISED, null, null, null, null)); lblFallRadiusValue = new JLabel("10"); lblFallRadiusValue.setFont(new Font("Tahoma", Font.PLAIN, 14)); lblBugVelocityValue = new JLabel("1"); lblBugVelocityValue.setFont(new Font("Tahoma", Font.PLAIN, 14)); lblVelocityValue = new JLabel("0.5"); lblVelocityValue.setFont(new Font("Tahoma", Font.PLAIN, 14)); lblInitMassValue = new JLabel("30"); lblInitMassValue.setFont(new Font("Tahoma", Font.PLAIN, 14)); sliderBugInitMass = new JSlider(); sliderBugInitMass.setValue(30); sliderBugInitMass.setMinimum(20); sliderBugInitMass.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent event) { sliderBugInitMassEvent(); } }); sliderBugInitMass.setMaximum(70); sliderFallRadius = new JSlider(); sliderFallRadius.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { sliderFallRadiusEvent(); } }); sliderFallRadius.setValue(10); sliderFallRadius.setMinorTickSpacing(1); sliderFallRadius.setMaximum(20); sliderBugVelocity = new JSlider(); sliderBugVelocity.setValue(10); sliderBugVelocity.setMaximum(20); sliderBugVelocity.setMinimum(5); sliderBugVelocity.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { sliderBugVelocityEvent(); } }); sliderBugVelocity.setMinorTickSpacing(1); sliderDiskVelocity = new JSlider(); sliderDiskVelocity.setMaximum(10); sliderDiskVelocity.setMinimum(1); sliderDiskVelocity.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { sliderDiskVelocityEvent(); } }); sliderDiskVelocity.setValue(5); sliderDiskVelocity.setMinorTickSpacing(1); JLabel lblCoeficienteDeRozamiento = new JLabel("Coef de Rozamiento"); lblCoeficienteDeRozamiento.setFont(new Font("Tahoma", Font.PLAIN, 14)); lblFrictionValue = new JLabel("0.25"); lblFrictionValue.setFont(new Font("Tahoma", Font.PLAIN, 14)); sliderFriction = new JSlider(); sliderFriction.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent arg0) { sliderFrictionEvent(); } }); sliderFriction.setValue(25); sliderFriction.setMinorTickSpacing(1); sliderFriction.setMinimum(1); sliderFriction.setMaximum(90); GroupLayout gl_panelInputs = new GroupLayout(panelInputs); gl_panelInputs.setHorizontalGroup(gl_panelInputs.createParallelGroup(Alignment.TRAILING) .addGroup(gl_panelInputs.createSequentialGroup().addContainerGap() .addGroup(gl_panelInputs.createParallelGroup(Alignment.TRAILING, false) .addComponent(labelBugVelocity, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(LabelBugMass, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(labelFallRadio, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE)) .addGap(18) .addGroup(gl_panelInputs.createParallelGroup(Alignment.LEADING) .addComponent(lblInitMassValue, GroupLayout.PREFERRED_SIZE, 42, GroupLayout.PREFERRED_SIZE) .addComponent(lblFallRadiusValue, GroupLayout.PREFERRED_SIZE, 56, GroupLayout.PREFERRED_SIZE) .addComponent(lblBugVelocityValue, GroupLayout.PREFERRED_SIZE, 56, GroupLayout.PREFERRED_SIZE)) .addGap(18) .addGroup(gl_panelInputs.createParallelGroup(Alignment.LEADING) .addComponent(sliderFallRadius, GroupLayout.PREFERRED_SIZE, 146, GroupLayout.PREFERRED_SIZE) .addComponent(sliderBugInitMass, GroupLayout.PREFERRED_SIZE, 146, GroupLayout.PREFERRED_SIZE) .addComponent(sliderBugVelocity, GroupLayout.PREFERRED_SIZE, 146, GroupLayout.PREFERRED_SIZE) .addComponent(sliderDiskVelocity, GroupLayout.PREFERRED_SIZE, 146, GroupLayout.PREFERRED_SIZE)) .addGap(26)) .addGroup(gl_panelInputs.createSequentialGroup().addContainerGap() .addGroup(gl_panelInputs.createParallelGroup(Alignment.TRAILING) .addComponent(lblCoeficienteDeRozamiento, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 133, Short.MAX_VALUE) .addComponent(labelDiskVelocity, GroupLayout.DEFAULT_SIZE, 133, Short.MAX_VALUE)) .addPreferredGap(ComponentPlacement.RELATED) .addGroup(gl_panelInputs.createParallelGroup(Alignment.LEADING, false) .addGroup(Alignment.TRAILING, gl_panelInputs.createSequentialGroup() .addComponent(lblVelocityValue, GroupLayout.PREFERRED_SIZE, 43, GroupLayout.PREFERRED_SIZE) .addGap(204)) .addGroup(Alignment.TRAILING, gl_panelInputs.createSequentialGroup() .addComponent(lblFrictionValue, GroupLayout.PREFERRED_SIZE, 56, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(sliderFriction, GroupLayout.PREFERRED_SIZE, 146, GroupLayout.PREFERRED_SIZE) .addGap(26)))) .addComponent(panelTitle, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 396, Short.MAX_VALUE)); gl_panelInputs.setVerticalGroup(gl_panelInputs.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelInputs.createSequentialGroup() .addComponent(panelTitle, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addGap(8) .addGroup(gl_panelInputs.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelInputs.createParallelGroup(Alignment.BASELINE) .addComponent(LabelBugMass).addComponent(lblInitMassValue, GroupLayout.PREFERRED_SIZE, 17, GroupLayout.PREFERRED_SIZE)) .addComponent(sliderBugInitMass, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(ComponentPlacement.RELATED) .addGroup(gl_panelInputs.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelInputs.createParallelGroup(Alignment.BASELINE) .addComponent(labelFallRadio).addComponent(lblFallRadiusValue, GroupLayout.PREFERRED_SIZE, 17, GroupLayout.PREFERRED_SIZE)) .addComponent(sliderFallRadius, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGap(11) .addGroup( gl_panelInputs.createParallelGroup(Alignment.LEADING).addComponent(labelBugVelocity) .addComponent(lblBugVelocityValue, GroupLayout.PREFERRED_SIZE, 17, GroupLayout.PREFERRED_SIZE) .addComponent(sliderBugVelocity, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(ComponentPlacement.UNRELATED) .addGroup(gl_panelInputs.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelInputs.createParallelGroup(Alignment.BASELINE) .addComponent(labelDiskVelocity).addComponent(lblVelocityValue, GroupLayout.PREFERRED_SIZE, 17, GroupLayout.PREFERRED_SIZE)) .addComponent(sliderDiskVelocity, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(gl_panelInputs.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelInputs.createSequentialGroup().addGap(12) .addGroup(gl_panelInputs.createParallelGroup(Alignment.BASELINE) .addComponent(lblCoeficienteDeRozamiento, GroupLayout.PREFERRED_SIZE, 17, GroupLayout.PREFERRED_SIZE) .addComponent(lblFrictionValue, GroupLayout.PREFERRED_SIZE, 17, GroupLayout.PREFERRED_SIZE))) .addGroup(gl_panelInputs.createSequentialGroup() .addPreferredGap(ComponentPlacement.UNRELATED).addComponent(sliderFriction, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))) .addGap(47))); JLabel lblDatosDeEntrada = new JLabel("Datos de Entrada"); lblDatosDeEntrada.setFont(new Font("Tahoma", Font.PLAIN, 14)); panelTitle.add(lblDatosDeEntrada); panelInputs.setLayout(gl_panelInputs); panel_control.setLayout(gl_panel_control); JPanel panel_visualizar = new JPanel(); GroupLayout groupLayout = new GroupLayout(getContentPane()); groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.LEADING) .addGroup(groupLayout.createSequentialGroup().addContainerGap() .addComponent(panel_control, GroupLayout.PREFERRED_SIZE, 432, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(panel_visualizar, GroupLayout.PREFERRED_SIZE, 560, GroupLayout.PREFERRED_SIZE) .addContainerGap(32, Short.MAX_VALUE))); groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.TRAILING) .addGroup(groupLayout.createSequentialGroup().addContainerGap() .addGroup(groupLayout.createParallelGroup(Alignment.TRAILING) .addComponent(panel_visualizar, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 598, Short.MAX_VALUE) .addComponent(panel_control, Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 598, Short.MAX_VALUE)) .addContainerGap())); GridBagLayout gbl_panel_visualizar = new GridBagLayout(); gbl_panel_visualizar.columnWidths = new int[] { 0, 0 }; gbl_panel_visualizar.rowHeights = new int[] { 0, 0, 0 }; gbl_panel_visualizar.columnWeights = new double[] { 1.0, Double.MIN_VALUE }; gbl_panel_visualizar.rowWeights = new double[] { 1.0, 1.0, Double.MIN_VALUE }; panel_visualizar.setLayout(gbl_panel_visualizar); JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); GridBagConstraints gbc_tabbedPane = new GridBagConstraints(); gbc_tabbedPane.gridheight = 2; gbc_tabbedPane.fill = GridBagConstraints.BOTH; gbc_tabbedPane.gridx = 0; gbc_tabbedPane.gridy = 0; panel_visualizar.add(tabbedPane, gbc_tabbedPane); panelSimulation = new JPanelGrafica(); tabbedPane.addTab("Simulacin", null, panelSimulation, null); panelSimulation.setBackground(Color.WHITE); getContentPane().setLayout(groupLayout); }
From source file:com.gele.tools.wow.wdbearmanager.WDBearManager.java
public void init(String[] args) { // copy ARGs// ww w . ja va2 s . c o m this.parseCommandLine(args); // Usefull for debugging this.myLogger.debug("java.version: " + System.getProperty("java.version")); this.myLogger.debug("java.vendor: " + System.getProperty("java.vendor")); this.myLogger.debug("java.vendor.url: " + System.getProperty("java.vendor.url")); this.myLogger.debug("os.name: " + System.getProperty("os.name")); this.myLogger.debug("os.arch: " + System.getProperty("os.arch")); this.myLogger.debug("os.version: " + System.getProperty("os.version")); if (this.paramDBconfig.length() != 0) { this.WDB_DB_CONFIG_FILE = this.paramDBconfig; } WDBearManager_API myAPI = new WDBearManager_API(this.WDB_DB_CONFIG_FILE); // Create all tables // -> Needed for the updata script <- // -> Otherwise it may crash with an empty database try { myAPI.getCountOfTable("creaturecache"); myAPI.getCountOfTable("gameobjectcache"); myAPI.getCountOfTable("itemcache"); myAPI.getCountOfTable("itemnamecache"); myAPI.getCountOfTable("itemtextchaxhe"); myAPI.getCountOfTable("npccache"); myAPI.getCountOfTable("pagetextcache"); myAPI.getCountOfTable("questcache"); } catch (Exception ex) { // ignore ex.printStackTrace(); System.exit(0); } // Check, if database must be re-newed DBUpdater myDBU = new DBUpdater(); myDBU.checkForUpdate(myAPI); WDBearManager_I myWoWWDBearManager_API = myAPI; // // print out some statistics // if (this.useGUI == false) { boolean paramSpec = false; // ASSERT DTO_Interface myDTO = null; if (this.paramWdbfile.length() != 0) { paramSpec = true; // Open WDB try { this.items = myWoWWDBearManager_API.readWDBfile(this.paramWdbfile); } catch (Exception ex) { this.myLogger.error("Error reading the WDB file"); return; } // first dto -> to identify the data Iterator itWDBS = this.items.iterator(); if (itWDBS.hasNext()) { myDTO = (DTO_Interface) itWDBS.next(); } } // Create CSV? if (this.paramCSVFolder.length() != 0) { if (myDTO == null) { // NO WDB specified -> exit this.myLogger.error("Error: You did not specify -" + this.PARAM_WDBFILE + "\n"); usage(this.options); return; } File csvFile = new File(this.paramCSVFolder, myDTO.getTableName() + ".csv"); if (this.useVerbose) { this.myLogger.info("Creating CSV file: " + csvFile.getAbsolutePath()); } try { WriteCSV.writeCSV(new File(this.paramCSVFolder), this.items); this.myLogger.info("CSV file written: " + csvFile.getAbsolutePath()); } catch (Exception ex) { ex.printStackTrace(); this.myLogger.error("Error writing the CSV file"); return; } } // Create TXT? if (this.paramTXTFolder.length() != 0) { if (myDTO == null) { // NO WDB specified -> exit this.myLogger.error("Error: You did not specify -" + this.PARAM_WDBFILE + "\n"); usage(this.options); return; } if (this.useVerbose) { String table = myDTO.getTableName(); File txtFile = new File(this.paramTXTFolder, table + ".txt"); this.myLogger.info("Creating TXT file: " + txtFile.getAbsolutePath()); } try { WriteTXT.writeTXT(new File(this.paramTXTFolder), this.items); } catch (Exception ex) { //ex.printStackTrace(); this.myLogger.error("Error writing the TXT file: " + ex.getMessage()); return; } } // Store inside SQL database? if (this.writeSQL == true) { paramSpec = true; if (myDTO == null) { // NO WDB specified -> exit this.myLogger.error("Error: You did not specify -" + this.PARAM_WDBFILE + "\n"); usage(this.options); return; } if (this.useVerbose) { this.myLogger.info("Storing data inside SQL database"); } SQLManager myWriteSQL = null; try { myWriteSQL = new SQLManager(this.WDB_DB_CONFIG_FILE); ObjectsWritten myOWr = myWriteSQL.insertOrUpdateToSQLDB(this.items, this.doUpdate); this.myLogger.info("Operation successfull"); if (this.useVerbose) { this.myLogger.info("DB statistics"); this.myLogger.info("INSERT: " + myOWr.getNumInsert()); this.myLogger.info("UPDATE: " + myOWr.getNumUpdate()); this.myLogger.info("Error INSERT: " + myOWr.getNumErrorInsert()); this.myLogger.info("Error UPDATE: " + myOWr.getNumErrorUpdate()); if (this.doUpdate == false) { this.myLogger.info("Objects skipped: " + myOWr.getNumSkipped()); System.out.println("If you want to overwrite/update objects, use 'update' param"); } this.myLogger.info(WDBearManager.VERSION_INFO); } } catch (Exception ex) { ex.printStackTrace(); this.myLogger.error("Error importing to database"); this.myLogger.error(ex.getMessage()); return; } } // writeSQL // Patch *.SCP with contents of database if (this.paramSCPname.length() != 0) { if (this.paramPatchSCP.length() == 0) { this.myLogger.error("Error: You did not specify -" + WDBearManager.PATCH_SCP + "\n"); usage(this.options); return; } paramSpec = true; this.myLogger.info("Patch scp file with the contents of the database"); try { SCPWritten mySCPW = myWoWWDBearManager_API.patchSCP(this.paramSCPname, this.paramPatchSCP, this.patchUTF8, this.paramLocale); if (this.useVerbose) { this.myLogger.info("Merge statistics"); System.out.println("Entries in database: " + mySCPW.getNumInDB()); this.myLogger.info("Merged with SCP: " + mySCPW.getNumPatched()); this.myLogger.info("Patched IDs: " + mySCPW.getPatchedIDs()); } this.myLogger.info("Patched file: " + this.paramSCPname + "_patch"); } catch (WDBMgr_IOException ex) { this.myLogger.error("The destination SCP file could not be created"); this.myLogger.error(ex.getMessage()); return; } catch (WDBMgr_NoDataAvailableException ex) { this.myLogger.info("Merging impossible"); this.myLogger.info("There are no entries inside the database"); } catch (Exception ex) { this.myLogger.error("Error while merging quests.scp with database"); this.myLogger.error(ex.getMessage()); return; } } // PatchSCP // Call jython script? if (this.paramScript.length() != 0) { paramSpec = true; this.myLogger.info("Calling Jython script"); this.myLogger.info("---"); PythonInterpreter interp = new PythonInterpreter(); interp.set("wdbmgrapi", myWoWWDBearManager_API); // set parameters Set setKeys = this.paramJython.keySet(); Iterator itKeys = setKeys.iterator(); String jyParam = ""; while (itKeys.hasNext()) { jyParam = (String) itKeys.next(); interp.set(jyParam, (String) this.paramJython.get(jyParam)); } interp.execfile(this.paramScript); this.myLogger.info("---"); System.out.println("Jython script executed, " + WDBearManager.VERSION_INFO); return; } // paramScript if (paramSpec == false) { usage(this.options); return; } // Exit return; } // Command Line Version // // GUI // PlasticLookAndFeel.setMyCurrentTheme(new DesertBlue()); try { UIManager.put("ClassLoader", LookUtils.class.getClassLoader()); UIManager.setLookAndFeel(new Plastic3DLookAndFeel()); } catch (Exception e) { } // try { // com.incors.plaf.kunststoff.KunststoffLookAndFeel kunststoffLnF = new com.incors.plaf.kunststoff.KunststoffLookAndFeel(); // KunststoffLookAndFeel // .setCurrentTheme(new com.incors.plaf.kunststoff.KunststoffTheme()); // UIManager.setLookAndFeel(kunststoffLnF); // } catch (javax.swing.UnsupportedLookAndFeelException ex) { // // handle exception or not, whatever you prefer // } // this line needs to be implemented in order to make JWS work properly UIManager.getLookAndFeelDefaults().put("ClassLoader", getClass().getClassLoader()); this.setTitle(WDBearManager.VERSION_INFO); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.getContentPane().setLayout(new BorderLayout()); // construct GUI to display the stuff // Menu // Where the GUI is created: JMenuBar menuBar; JMenu menu; //, submenu; JMenuItem menuItem; //JRadioButtonMenuItem rbMenuItem; //JCheckBoxMenuItem cbMenuItem; // Create the menu bar. menuBar = new JMenuBar(); // Build the first menu. menu = new JMenu("File"); menu.setMnemonic(KeyEvent.VK_A); menu.getAccessibleContext().setAccessibleDescription("Process WDB files"); menuBar.add(menu); // Exit menuItem = new JMenuItem(MENU_EXIT, KeyEvent.VK_T); menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4, ActionEvent.ALT_MASK)); menuItem.getAccessibleContext().setAccessibleDescription("Exit program"); menuItem.addActionListener(this); menu.add(menuItem); // Build the first menu. menu = new JMenu("About"); menu.setMnemonic(KeyEvent.VK_A); menu.getAccessibleContext().setAccessibleDescription("Whassup?"); menuBar.add(menu); // Help menuItem = new JMenuItem(MENU_HELP, KeyEvent.VK_H); menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, ActionEvent.ALT_MASK)); menuItem.getAccessibleContext().setAccessibleDescription("Help me..."); menuItem.addActionListener(this); menu.add(menuItem); // JavaDocs menuItem = new JMenuItem(MENU_JDOCS, KeyEvent.VK_J); menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_J, ActionEvent.ALT_MASK)); menuItem.getAccessibleContext().setAccessibleDescription("Show API docs..."); menuItem.addActionListener(this); menu.add(menuItem); // separator menu.addSeparator(); // CheckForUpdate menuItem = new JMenuItem(MENU_CHECKUPDATE, KeyEvent.VK_U); menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U, ActionEvent.ALT_MASK)); menuItem.getAccessibleContext().setAccessibleDescription("Check for update..."); menuItem.addActionListener(this); menu.add(menuItem); // separator menu.addSeparator(); // ABOUT menuItem = new JMenuItem(MENU_ABOUT, KeyEvent.VK_T); menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, ActionEvent.ALT_MASK)); menuItem.getAccessibleContext().setAccessibleDescription("Ueber..."); menuItem.addActionListener(this); menu.add(menuItem); this.setJMenuBar(menuBar); JPanel mainPanel = new JPanel(); mainPanel.setLayout(new GridLayout(0, 1)); JTabbedPane tabbedPane = new JTabbedPane(); ImageIcon wowIcon = createImageIcon("images/fromdisk.gif"); JComponent panel1 = new WDB_Panel(myWoWWDBearManager_API); tabbedPane.addTab("WDB-Module", wowIcon, panel1, "Handle WDB files"); tabbedPane.setMnemonicAt(0, KeyEvent.VK_1); ImageIcon panelIcon = createImageIcon("images/hsql.gif"); JComponent panel2 = null; try { panel2 = new SQL_Panel(myWoWWDBearManager_API); } catch (Throwable ex) { System.err.println("Error while instantiating SQL Panel: "); System.err.println(ex.getMessage()); ex.printStackTrace(); System.exit(0); } tabbedPane.addTab("DB-Module", panelIcon, panel2, "Handle database"); tabbedPane.setMnemonicAt(1, KeyEvent.VK_2); panelIcon = createImageIcon("images/pythonpoweredsmall.gif"); JComponent panel3 = new Python_Panel(myWoWWDBearManager_API); tabbedPane.addTab("Scripts", panelIcon, panel3, "Scripting"); tabbedPane.setMnemonicAt(2, KeyEvent.VK_3); // maybe user PLUGIN availabe // -> check for folders below "plugins" File filUserPanels = new File("plugins"); // 1) find user plugins (scan for directories) // 2) scan for <name>.properties, where <name> is the name of the directory // 3) load the properties file and get the plugin running String[] strUserPlugins = filUserPanels.list(new FilenameFilter() { public boolean accept(File dir, String name) { return (new File(dir, name).isDirectory()); } }); if (strUserPlugins != null) { ArrayList urlJars = new ArrayList(); //URL[] urlJars = new URL[strUserPlugins.length]; String strCurrJar = ""; String strPlugins[] = new String[strUserPlugins.length]; try { for (int i = 0; i < strUserPlugins.length; i++) { File baseFile = new File("plugins", strUserPlugins[i]); File filProperties = new File(baseFile, strUserPlugins[i] + ".properties"); if (filProperties.exists()) { // set plugin folder and .properties name strPlugins[i] = strUserPlugins[i]; this.myLogger.info("Found 'plugin' : " + baseFile.getAbsolutePath()); this.myLogger.info(" Trying to load .jar file"); // Scan for JAR files and include them //System.out.println(baseFile.getAbsolutePath()); String[] strJars = baseFile.list(new FilenameFilter() { public boolean accept(File dir, String name) { return name.endsWith(".jar"); } }); for (int j = 0; j < strJars.length; j++) { File filJAR = new File(baseFile, strJars[j]); strCurrJar = filJAR.getAbsolutePath(); this.myLogger.info("Loading external 'plugin' JAR: " + strCurrJar); URL jarfile = new URL("jar", "", "file:" + strCurrJar + "!/"); urlJars.add(jarfile); } } else { // print warning - a directory inside plugins, but there is no plugin this.myLogger.warn("Found directory inside plugins folder, but no .properties file"); this.myLogger.warn(" Name of directory: " + strUserPlugins[i]); this.myLogger.warn(" Please review the directory!"); } } // for... all user plugins } catch (Exception ex) { this.myLogger.error("Plugin: Error loading " + strCurrJar); this.myLogger.error("Please check your 'plugin' folder"); } URLClassLoader cl = null; try { // File file = new File("plugins", strUserJars[i]); // this.myLogger.info("Lade externes JAR: " + file.getAbsolutePath()); // URL jarfile = new URL("jar", "", "file:" + file.getAbsolutePath() + "!/"); URL[] loadURLs = new URL[urlJars.toArray().length]; for (int j = 0; j < urlJars.toArray().length; j++) { loadURLs[j] = (URL) urlJars.get(j); } cl = URLClassLoader.newInstance(loadURLs); Thread.currentThread().setContextClassLoader(cl); // String lcStr = "Test"; // Class loadedClass = cl.loadClass(lcStr); // this.myLogger.info("Smooth..."); } catch (Exception ex) { ex.printStackTrace(); } // 2) load properties and instantiate the plugin // String[] strPlugins = filUserPanels.list(new FilenameFilter() { // public boolean accept(File dir, String name) { // return (name.endsWith("_plugin.properties")); // } // }); String strPluginName = ""; String strPluginClass = ""; String strPluginImage = ""; WDBearPlugin pluginPanel = null; for (int i = 0; i < strPlugins.length; i++) { //this.myLogger.info(strPlugins[i]); Properties prpPlugin = null; try { prpPlugin = ReadPropertiesFile.readProperties( new File("plugins", strPlugins[i] + "/" + strPlugins[i]).getAbsolutePath() + ".properties"); } catch (Exception ex) { this.myLogger.error("Error with plugin: " + strPlugins[i]); this.myLogger.error("Could not load properties file"); continue; } if ((strPluginClass = prpPlugin.getProperty(this.PLUGIN_CLASS)) == null) { this.myLogger.error("Error with plugin: " + strPlugins[i]); this.myLogger.error("Property '" + this.PLUGIN_CLASS + "' not found"); continue; } if ((strPluginName = prpPlugin.getProperty(this.PLUGIN_NAME)) == null) { this.myLogger.error("Error with plugin: " + strPlugins[i]); this.myLogger.error("Property '" + this.PLUGIN_NAME + "' not found"); continue; } if ((strPluginImage = prpPlugin.getProperty(this.PLUGIN_IMAGE)) == null) { this.myLogger.error("Error with plugin: " + strPlugins[i]); this.myLogger.error("Property '" + this.PLUGIN_IMAGE + "' not found"); continue; } File filPlgImg = new File("plugins", strPlugins[i] + "/" + strPluginImage); panelIcon = createImageIcon(filPlgImg.getAbsolutePath()); if (panelIcon == null) { this.myLogger.error("Error with plugin: " + strPlugins[i]); this.myLogger.error("Could not read image '" + strPluginImage + "'"); continue; } try { pluginPanel = (WDBearPlugin) (cl.loadClass(strPluginClass).newInstance()); pluginPanel.runPlugin(myAPI); } catch (Exception ex) { this.myLogger.error("Error with plugin: " + strPlugins[i]); this.myLogger.error("Could not instantiate '" + strPluginClass + "'"); ex.printStackTrace(); continue; } tabbedPane.addTab(strPluginName, panelIcon, pluginPanel, strPluginName); } // Plugins } // plugins folder found mainPanel.add(tabbedPane); this.getContentPane().add(mainPanel, BorderLayout.CENTER); this.setSize(1024, 768); //this.pack(); this.show(); }
From source file:org.fhaes.fhsamplesize.view.FHSampleSize.java
/** * Initialize GUI components./* w w w.ja v a 2s . c o m*/ */ @SuppressWarnings({ "rawtypes", "unchecked" }) private void initGUI() { App.init(); // setBounds(100, 100, 972, 439); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setIconImage(Builder.getApplicationIcon()); setTitle("Sample Size Analysis"); getContentPane().setLayout(new MigLayout("", "[1136px,grow,fill]", "[30px][405px,grow]")); JToolBar toolBar = new JToolBar(); toolBar.setFloatable(false); getContentPane().add(toolBar, "cell 0 0,growx,aligny top"); JToolBarButton btnOpen = new JToolBarButton(actionBrowse); btnOpen.setIcon(Builder.getImageIcon("fileopen.png")); toolBar.add(btnOpen); JToolBarButton btnSave = new JToolBarButton(actionSaveTable); btnSave.setIcon(Builder.getImageIcon("save.png")); toolBar.add(btnSave); JToolBarButton btnExportPDF = new JToolBarButton(actionExportPDF); btnExportPDF.setIcon(Builder.getImageIcon("pdf.png")); toolBar.add(btnExportPDF); JToolBarButton btnExportPNG = new JToolBarButton(actionExportPNG); btnExportPNG.setIcon(Builder.getImageIcon("formatpng.png")); toolBar.add(btnExportPNG); toolBar.addSeparator(); JToolBarButton btnRun = new JToolBarButton(actionRun); btnRun.setIcon(Builder.getImageIcon("run.png")); toolBar.add(btnRun); JPanel panelMain = new JPanel(); getContentPane().add(panelMain, "cell 0 1,grow"); panelMain.setLayout(new BorderLayout(0, 0)); JSplitPane splitPaneMain = new JSplitPane(); splitPaneMain.setOneTouchExpandable(true); panelMain.add(splitPaneMain); JPanel panelParameters = new JPanel(); splitPaneMain.setLeftComponent(panelParameters); panelParameters.setLayout(new MigLayout("", "[grow,right]", "[][][][193.00,grow,fill][]")); JPanel panelInput = new JPanel(); panelInput.setBorder(new TitledBorder(null, "Input", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panelParameters.add(panelInput, "cell 0 0,grow"); panelInput.setLayout(new MigLayout("", "[100px:100px:180px,right][grow,fill][]", "[]")); JLabel lblInputFile = new JLabel("Input file:"); panelInput.add(lblInputFile, "cell 0 0"); txtInputFile = new JTextField(); panelInput.add(txtInputFile, "cell 1 0,growx"); txtInputFile.setActionCommand("NewFileTyped"); txtInputFile.addActionListener(this); txtInputFile.setColumns(10); JButton btnBrowse = new JButton(""); panelInput.add(btnBrowse, "cell 2 0"); btnBrowse.setAction(actionBrowse); btnBrowse.setText(""); btnBrowse.setIcon(Builder.getImageIcon("fileopen16.png")); btnBrowse.setPreferredSize(new Dimension(25, 25)); btnBrowse.setMaximumSize(new Dimension(25, 25)); btnBrowse.putClientProperty("JButton.buttonType", "segmentedTextured"); btnBrowse.putClientProperty("JButton.segmentPosition", "middle"); JPanel panelAnalysisOptions = new JPanel(); panelAnalysisOptions.setBorder(new TitledBorder(null, "Analysis and filtering options", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panelParameters.add(panelAnalysisOptions, "cell 0 1,grow"); panelAnalysisOptions.setLayout(new MigLayout("", "[100px:100px:180px,right][grow][][]", "[][][][][]")); JLabel lblEventTypes = new JLabel("Event type:"); panelAnalysisOptions.add(lblEventTypes, "cell 0 0"); cboEventType = new JComboBox(); panelAnalysisOptions.add(cboEventType, "cell 1 0 3 1"); cboEventType.setModel(new DefaultComboBoxModel(EventTypeToProcess.values())); new EventTypeWrapper(cboEventType, PrefKey.EVENT_TYPE_TO_PROCESS, EventTypeToProcess.FIRE_EVENT); chkCommonYears = new JCheckBox("<html>Only analyze years all series have in common"); chkCommonYears.setEnabled(false); new CheckBoxWrapper(chkCommonYears, PrefKey.SSIZ_CHK_COMMON_YEARS, false); panelAnalysisOptions.add(chkCommonYears, "cell 1 1 3 1"); chkExcludeSeriesWithNoEvents = new JCheckBox("<html>Exclude series/segments with no events"); chkExcludeSeriesWithNoEvents.setEnabled(false); new CheckBoxWrapper(chkExcludeSeriesWithNoEvents, PrefKey.SSIZ_CHK_EXCLUDE_SERIES_WITH_NO_EVENTS, false); panelAnalysisOptions.add(chkExcludeSeriesWithNoEvents, "cell 1 2 3 1"); JLabel lblThresholdType = new JLabel("Threshold:"); panelAnalysisOptions.add(lblThresholdType, "cell 0 3"); cboThresholdType = new JComboBox(); panelAnalysisOptions.add(cboThresholdType, "cell 1 3"); cboThresholdType.setModel(new DefaultComboBoxModel(FireFilterType.values())); new FireFilterTypeWrapper(cboThresholdType, PrefKey.COMPOSITE_FILTER_TYPE_WITH_ALL_TREES, FireFilterType.NUMBER_OF_EVENTS); JLabel label = new JLabel(">="); panelAnalysisOptions.add(label, "flowx,cell 2 3"); spnThresholdValueGT = new JSpinner(); panelAnalysisOptions.add(spnThresholdValueGT, "cell 3 3"); spnThresholdValueGT.setModel(new SpinnerNumberModel(1, 1, 999, 1)); new SpinnerWrapper(spnThresholdValueGT, PrefKey.COMPOSITE_FILTER_VALUE, 1); chkEnableLessThan = new JCheckBox(""); chkEnableLessThan.setActionCommand("LessThanThresholdStatus"); chkEnableLessThan.addActionListener(this); panelAnalysisOptions.add(chkEnableLessThan, "flowx,cell 1 4,alignx right"); lblLessThan = new JLabel("<="); lblLessThan.setEnabled(false); panelAnalysisOptions.add(lblLessThan, "cell 2 4"); spnThresholdValueLT = new JSpinner(); spnThresholdValueLT.setEnabled(false); spnThresholdValueLT.setModel(new SpinnerNumberModel(1, 1, 999, 1)); panelAnalysisOptions.add(spnThresholdValueLT, "cell 3 4"); lblAnd = new JLabel("and"); panelAnalysisOptions.add(lblAnd, "cell 1 4"); JPanel panelSimulations = new JPanel(); panelSimulations.setBorder( new TitledBorder(null, "Simulations", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panelParameters.add(panelSimulations, "cell 0 2,grow"); panelSimulations.setLayout(new MigLayout("", "[100px:100px:180px,right][fill]", "[][][]")); JLabel lblSimulations = new JLabel("Simulations:"); panelSimulations.add(lblSimulations, "cell 0 0"); spnSimulations = new JSpinner(); panelSimulations.add(spnSimulations, "cell 1 0"); spnSimulations.setModel(new SpinnerNumberModel(new Integer(1000), new Integer(1), null, new Integer(1))); new SpinnerWrapper(spnSimulations, PrefKey.SSIZ_SIMULATION_COUNT, 1000); JLabel lblSeedNumber = new JLabel("Seed number:"); panelSimulations.add(lblSeedNumber, "cell 0 1"); spnSeed = new JSpinner(); panelSimulations.add(spnSeed, "cell 1 1"); spnSeed.setModel(new SpinnerNumberModel(new Integer(30188), null, null, new Integer(1))); new SpinnerWrapper(spnSeed, PrefKey.SSIZ_SEED_NUMBER, 30188); JLabel lblResampling = new JLabel("Resampling:"); panelSimulations.add(lblResampling, "cell 0 2"); cboResampling = new JComboBox(); panelSimulations.add(cboResampling, "cell 1 2"); cboResampling .setModel(new DefaultComboBoxModel(new String[] { "With replacement", "Without replacement" })); new ResamplingTypeWrapper(cboResampling, PrefKey.SSIZ_RESAMPLING_TYPE, ResamplingType.WITH_REPLACEMENT); segmentationPanel = new SegmentationPanel(); segmentationPanel.chkSegmentation.setText("Process subset or segments of dataset?"); segmentationPanel.chkSegmentation.setEnabled(false); panelParameters.add(segmentationPanel, "cell 0 3,growx"); JPanel panel_3 = new JPanel(); panelParameters.add(panel_3, "cell 0 4,grow"); panel_3.setLayout(new MigLayout("", "[left][grow][right]", "[]")); JButton btnReset = new JButton("Reset"); btnReset.setActionCommand("Reset"); btnReset.addActionListener(this); panel_3.add(btnReset, "cell 0 0,grow"); JButton btnRunAnalysis = new JButton("Run Analysis"); btnRunAnalysis.setAction(actionRun); panel_3.add(btnRunAnalysis, "cell 2 0,grow"); JPanel panelResults = new JPanel(); splitPaneMain.setRightComponent(panelResults); panelResults.setLayout(new BorderLayout(0, 0)); splitPaneResults = new JSplitPane(); splitPaneResults.setResizeWeight(0.5); splitPaneResults.setOneTouchExpandable(true); splitPaneResults.setDividerLocation(0.5d); panelResults.add(splitPaneResults, BorderLayout.CENTER); splitPaneResults.setOrientation(JSplitPane.VERTICAL_SPLIT); JPanel panelResultsTop = new JPanel(); splitPaneResults.setLeftComponent(panelResultsTop); panelResultsTop.setLayout(new BorderLayout(0, 0)); JPanel panelChartOptions = new JPanel(); panelChartOptions.setBackground(Color.WHITE); panelResultsTop.add(panelChartOptions, BorderLayout.SOUTH); panelChartOptions.setLayout(new MigLayout("", "[][][][][][grow][grow]", "[15px,center]")); JLabel lblNewLabel = new JLabel("Plot:"); panelChartOptions.add(lblNewLabel, "cell 0 0,alignx trailing,aligny center"); cboChartMetric = new JComboBox(); cboChartMetric.setEnabled(false); cboChartMetric.setModel(new DefaultComboBoxModel(MiddleMetric.values())); panelChartOptions.add(cboChartMetric, "cell 1 0,growx"); cboChartMetric.setBackground(Color.WHITE); JLabel lblOfSegment = new JLabel("of segment:"); panelChartOptions.add(lblOfSegment, "cell 2 0,alignx trailing"); cboSegment = new JComboBox(); cboSegment.setBackground(Color.WHITE); cboSegment.setActionCommand("UpdateChart"); cboSegment.addActionListener(this); panelChartOptions.add(cboSegment, "cell 3 0,growx"); cboChartMetric.setActionCommand("UpdateChart"); JLabel lblWithAsymptoteType = new JLabel("with asymptote type:"); panelChartOptions.add(lblWithAsymptoteType, "cell 4 0,alignx trailing"); JComboBox comboBox = new JComboBox(); comboBox.setEnabled(false); comboBox.setModel(new DefaultComboBoxModel(new String[] { "none", "Weibull", "Michaelis-Menten", "Modified Michaelis-Menten", "Logistic", "Modified exponential" })); comboBox.setBackground(Color.WHITE); panelChartOptions.add(comboBox, "cell 5 0,growx"); cboChartMetric.addActionListener(this); panelChart = new JPanel(); panelChart.setMinimumSize(new Dimension(200, 200)); panelResultsTop.add(panelChart, BorderLayout.CENTER); panelChart.setLayout(new BorderLayout(0, 0)); panelChart.setBackground(Color.WHITE); JTabbedPane panelResultsBottom = new JTabbedPane(JTabbedPane.BOTTOM); splitPaneResults.setRightComponent(panelResultsBottom); simulationsTable = new SSIZResultsTable(); simulationsTable.setEnabled(false); simulationsTable.addMouseListener(new TablePopClickListener()); simulationsTable.setVisibleRowCount(10); adapter = new JTableSpreadsheetByRowAdapter(simulationsTable); scrollPaneSimulations = new JScrollPane(); panelResultsBottom.addTab("Simulations", null, scrollPaneSimulations, null); scrollPaneSimulations.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrollPaneSimulations.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); scrollPaneSimulations.setViewportView(simulationsTable); JPanel panelAsymptote = new JPanel(); asymptoteTable = new AsymptoteTable(); asymptoteTable.setEnabled(false); // asymptoteTable.addMouseListener(new TablePopClickListener()); asymptoteTable.setVisibleRowCount(10); scrollPaneAsymptote = new JScrollPane(); scrollPaneAsymptote.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrollPaneAsymptote.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); scrollPaneAsymptote.setViewportView(asymptoteTable); panelAsymptote.setLayout(new BorderLayout()); panelAsymptote.add(scrollPaneAsymptote, BorderLayout.CENTER); panelResultsBottom.addTab("Asymptote", null, panelAsymptote, null); // Disable asymptote tab until it is implemented panelResultsBottom.setEnabledAt(1, false); panelProgressBar = new JPanel(); panelProgressBar.setLayout(new BorderLayout()); btnCancelAnalysis = new JButton("Cancel"); btnCancelAnalysis.setIcon(Builder.getImageIcon("delete.png")); btnCancelAnalysis.setVisible(false); btnCancelAnalysis.setActionCommand("CancelAnalysis"); btnCancelAnalysis.addActionListener(this); progressBar = new JProgressBar(); panelProgressBar.add(progressBar, BorderLayout.CENTER); panelProgressBar.add(btnCancelAnalysis, BorderLayout.EAST); progressBar.setStringPainted(true); fileDialogWasUsed = false; mouseListenersActive = false; this.setGUIForFHFileReader(); this.setGUIForThresholdStatus(); pack(); this.setExtendedState(this.getExtendedState() | JFrame.MAXIMIZED_BOTH); setVisible(true); }
From source file:md.mclama.com.ModManager.java
/** * Create the frame./*from w w w . ja v a 2 s. co m*/ */ @SuppressWarnings("serial") public ModManager() throws MalformedURLException { setResizable(false); setTitle("McLauncher " + McVersion); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 700, 400); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); tabbedPane.setBounds(0, 0, 694, 372); contentPane.add(tabbedPane); profileListMdl = new DefaultListModel<String>(); ModListModel = new DefaultListModel<String>(); listModel = new DefaultListModel<String>(); getCurrentMods(); panelLauncher = new JPanel(); tabbedPane.addTab("Launcher", null, panelLauncher, null); panelLauncher.setLayout(null); JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(556, 36, 132, 248); panelLauncher.add(scrollPane); profileList = new JList<String>(profileListMdl); profileList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); scrollPane.setViewportView(profileList); btnNewProfile = new JButton("New"); btnNewProfile.setFont(new Font("SansSerif", Font.PLAIN, 12)); btnNewProfile.setBounds(479, 4, 76, 20); panelLauncher.add(btnNewProfile); btnNewProfile.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { newProfile(txtProfile.getText()); } }); btnNewProfile.setToolTipText("Click to create a new profile."); JButton btnRenameProfile = new JButton("Rename"); btnRenameProfile.setBounds(479, 25, 76, 20); panelLauncher.add(btnRenameProfile); btnRenameProfile.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { renameProfile(); } }); btnRenameProfile.setToolTipText("Click to rename the selected profile"); JButton btnDelProfile = new JButton("Delete"); btnDelProfile.setBounds(479, 50, 76, 20); panelLauncher.add(btnDelProfile); btnDelProfile.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { deleteProfile(); } }); btnDelProfile.setToolTipText("Click to delete the selected profile."); JButton btnLaunch = new JButton("Launch"); btnLaunch.setBounds(605, 319, 89, 23); panelLauncher.add(btnLaunch); btnLaunch.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (selProfile != null) { LaunchFactorioWithSelectedMods(false); //dont ignore } } }); btnLaunch.setToolTipText("Click to launch factorio with the selected mod profile."); lblAvailableMods = new JLabel("Available Mods"); lblAvailableMods.setBounds(4, 155, 144, 14); panelLauncher.add(lblAvailableMods); lblAvailableMods.setFont(new Font("SansSerif", Font.PLAIN, 10)); lblAvailableMods.setText("Available Mods: " + -1); txtGamePath = new JTextField(); txtGamePath.setBounds(4, 5, 211, 23); panelLauncher.add(txtGamePath); txtGamePath.setToolTipText("Select tha path to your game!"); txtGamePath.setFont(new Font("Tahoma", Font.PLAIN, 8)); txtGamePath.setText("Game Path"); txtGamePath.setColumns(10); JButton btnFind = new JButton("find"); btnFind.setBounds(227, 3, 32, 23); panelLauncher.add(btnFind); txtProfile = new JTextField(); txtProfile.setBounds(556, 2, 132, 22); panelLauncher.add(txtProfile); txtProfile.setToolTipText("The name of NEW or RENAME profiles"); txtProfile.setText("Profile1"); txtProfile.setColumns(10); lblModsEnabled = new JLabel("Mods Enabled: -1"); lblModsEnabled.setBounds(335, 155, 95, 16); panelLauncher.add(lblModsEnabled); lblModsEnabled.setFont(new Font("SansSerif", Font.PLAIN, 10)); JScrollPane scrollPane_1 = new JScrollPane(); scrollPane_1.setBounds(0, 167, 211, 165); panelLauncher.add(scrollPane_1); modsList = new JList<String>(listModel); modsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); modsList.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { String modName = util.getModVersion(modsList.getSelectedValue()); lblModVersion.setText("Mod Version: " + modName); checkDependency(modsList); if (modName.contains(".zip")) { new File(System.getProperty("java.io.tmpdir") + modName.replace(".zip", "")).delete(); } if (System.currentTimeMillis() - lastClickTime <= 300) { //Double click addMod(); } lastClickTime = System.currentTimeMillis(); } }); scrollPane_1.setViewportView(modsList); modsList.setFont(new Font("Tahoma", Font.PLAIN, 9)); JScrollPane scrollPane_2 = new JScrollPane(); scrollPane_2.setBounds(333, 167, 211, 165); panelLauncher.add(scrollPane_2); enabledModsList = new JList<String>(ModListModel); enabledModsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); enabledModsList.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { lblModVersion.setText("Mod Version: " + util.getModVersion(enabledModsList.getSelectedValue())); checkDependency(enabledModsList); if (System.currentTimeMillis() - lastClickTime <= 300) { //Double click removeMod(); } lastClickTime = System.currentTimeMillis(); } }); enabledModsList.setFont(new Font("SansSerif", Font.PLAIN, 10)); scrollPane_2.setViewportView(enabledModsList); JButton btnEnable = new JButton("Enable"); btnEnable.setBounds(223, 200, 90, 28); panelLauncher.add(btnEnable); btnEnable.setToolTipText("Add mod -->"); JButton btnDisable = new JButton("Disable"); btnDisable.setBounds(223, 240, 90, 28); panelLauncher.add(btnDisable); btnDisable.setToolTipText("Disable mod "); JLabel lblModsAvailable = new JLabel("Mods available"); lblModsAvailable.setBounds(4, 329, 89, 14); panelLauncher.add(lblModsAvailable); lblModsAvailable.setFont(new Font("SansSerif", Font.PLAIN, 10)); JLabel lblEnabledMods = new JLabel("Enabled Mods"); lblEnabledMods.setBounds(337, 329, 89, 16); panelLauncher.add(lblEnabledMods); lblEnabledMods.setFont(new Font("SansSerif", Font.PLAIN, 10)); lblModVersion = new JLabel("Mod Version: (select a mod first)"); lblModVersion.setBounds(4, 117, 183, 14); panelLauncher.add(lblModVersion); lblModVersion.setFont(new Font("SansSerif", Font.PLAIN, 10)); lblRequiredMods = new JLabel("Required Mods: " + reqModsStr); lblRequiredMods.setBounds(6, 143, 538, 14); panelLauncher.add(lblRequiredMods); lblRequiredMods.setHorizontalAlignment(SwingConstants.RIGHT); lblRequiredMods.setFont(new Font("SansSerif", Font.PLAIN, 10)); JButton btnNewButton = new JButton("TEST"); btnNewButton.setVisible(testBtnEnabled); btnNewButton.setEnabled(testBtnEnabled); btnNewButton.setBounds(338, 61, 90, 28); panelLauncher.add(btnNewButton); btnUpdate.setBounds(218, 322, 103, 20); panelLauncher.add(btnUpdate); btnUpdate.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { util.updateLauncher(); } }); btnUpdate.setVisible(false); btnUpdate.setFont(new Font("SansSerif", Font.PLAIN, 9)); lblModRequires = new JLabel("Mod Requires: (Select a mod first)"); lblModRequires.setBounds(4, 127, 317, 16); panelLauncher.add(lblModRequires); btnLaunchIgnore = new JButton("Launch + ignore"); btnLaunchIgnore.setToolTipText("Ignore any errors that McLauncher may not correctly account for."); btnLaunchIgnore.setFont(new Font("SansSerif", Font.PLAIN, 11)); btnLaunchIgnore.setBounds(556, 284, 133, 23); panelLauncher.add(btnLaunchIgnore); JButton btnConsole = new JButton("Console"); btnConsole.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { boolean changeto = !con.isVisible(); con.setVisible(changeto); con.updateConsole(); } }); btnConsole.setBounds(335, 0, 90, 28); panelLauncher.add(btnConsole); JPanel panelDownloadMods = new JPanel(); tabbedPane.addTab("Download Mods", null, panelDownloadMods, null); panelDownloadMods.setLayout(null); scrollPane_3 = new JScrollPane(); scrollPane_3.setBounds(0, 0, 397, 303); panelDownloadMods.add(scrollPane_3); dlModel = new DefaultTableModel(new Object[][] {}, new String[] { "Mod Name", "Author", "Version", "Tags" }) { Class[] columnTypes = new Class[] { String.class, String.class, String.class, Object.class }; public Class getColumnClass(int columnIndex) { return columnTypes[columnIndex]; } boolean[] columnEditables = new boolean[] { false, false, false, false }; public boolean isCellEditable(int row, int column) { return columnEditables[column]; }; }; tSorter = new TableRowSorter<DefaultTableModel>(dlModel); tableDownloads = new JTable(); tableDownloads.setRowSorter(tSorter); tableDownloads.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { trow = tableDownloads.getSelectedRow(); trow = tableDownloads.getRowSorter().convertRowIndexToModel(trow); getDlModData(); canDownloadMod = true; } }); tableDownloads.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { trow = tableDownloads.getSelectedRow(); trow = tableDownloads.getRowSorter().convertRowIndexToModel(trow); getDlModData(); canDownloadMod = true; } }); tableDownloads.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); tableDownloads.setShowVerticalLines(true); tableDownloads.setShowHorizontalLines(true); tableDownloads.setModel(dlModel); tableDownloads.getColumnModel().getColumn(0).setPreferredWidth(218); tableDownloads.getColumnModel().getColumn(1).setPreferredWidth(97); tableDownloads.getColumnModel().getColumn(2).setPreferredWidth(77); scrollPane_3.setViewportView(tableDownloads); btnDownload = new JButton("Download"); btnDownload.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (canDownloadMod && !CurrentlyDownloading) { String dlUrl = getModDownloadUrl(); try { if (dlUrl.equals("") || dlUrl.equals(" ") || dlUrl == null) { con.log("Log", "No download link for mod, got... '" + dlUrl + "'"); } else { CurrentlyDownloading = true; CurrentDownload = new Download(new URL(dlUrl), McLauncher); } } catch (MalformedURLException e1) { con.log("Log", "Failed to download mod... No download URL?"); } } } }); btnDownload.setBounds(307, 308, 90, 28); panelDownloadMods.add(btnDownload); btnGotoMod = new JButton("Mod Page"); btnGotoMod.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { util.openWebpage(modPageUrl); } }); btnGotoMod.setEnabled(false); btnGotoMod.setBounds(134, 308, 90, 28); panelDownloadMods.add(btnGotoMod); pBarDownloadMod = new JProgressBar(); pBarDownloadMod.setBounds(538, 308, 150, 10); panelDownloadMods.add(pBarDownloadMod); pBarExtractMod = new JProgressBar(); pBarExtractMod.setBounds(538, 314, 150, 10); panelDownloadMods.add(pBarExtractMod); lblDownloadModInfo = new JLabel("Download progress"); lblDownloadModInfo.setBounds(489, 326, 199, 16); panelDownloadMods.add(lblDownloadModInfo); lblDownloadModInfo.setHorizontalAlignment(SwingConstants.TRAILING); panelModImg = new JPanel(); panelModImg.setBounds(566, 0, 128, 128); panelDownloadMods.add(panelModImg); txtFilterText = new JTextField(); txtFilterText.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { if (txtFilterText.getText().equals("Filter Text")) { txtFilterText.setText(""); newFilter(); } } }); txtFilterText.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { if (!txtFilterText.getText().equals("Filter Text")) { newFilter(); } } }); txtFilterText.setText("Filter Text"); txtFilterText.setBounds(0, 308, 122, 28); panelDownloadMods.add(txtFilterText); txtFilterText.setColumns(10); comboBox = new JComboBox(); comboBox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { newFilter(); } }); comboBox.setModel(new DefaultComboBoxModel(new String[] { "No tag filter", "Vanilla", "Machine", "Mechanic", "New Ore", "Module", "Big Mod", "Power", "GUI", "Map-Gen", "Must-Have", "Equipment" })); comboBox.setBounds(403, 44, 150, 26); panelDownloadMods.add(comboBox); lblModDlCounter = new JLabel("Mod database: "); lblModDlCounter.setFont(new Font("SansSerif", Font.PLAIN, 10)); lblModDlCounter.setBounds(403, 5, 162, 16); panelDownloadMods.add(lblModDlCounter); txtrDMModDescription = new JTextArea(); txtrDMModDescription.setBackground(Color.LIGHT_GRAY); txtrDMModDescription.setBorder(new LineBorder(new Color(0, 0, 0))); txtrDMModDescription.setFocusable(false); txtrDMModDescription.setEditable(false); txtrDMModDescription.setLineWrap(true); txtrDMModDescription.setWrapStyleWord(true); txtrDMModDescription.setText("Mod Description: "); txtrDMModDescription.setBounds(403, 132, 285, 75); panelDownloadMods.add(txtrDMModDescription); lblDMModTags = new JTextArea(); lblDMModTags.setFocusable(false); lblDMModTags.setEditable(false); lblDMModTags.setBorder(new LineBorder(new Color(0, 0, 0))); lblDMModTags.setWrapStyleWord(true); lblDMModTags.setLineWrap(true); lblDMModTags.setBackground(Color.LIGHT_GRAY); lblDMModTags.setText("Mod Tags: "); lblDMModTags.setBounds(403, 71, 160, 60); panelDownloadMods.add(lblDMModTags); lblDMRequiredMods = new JTextArea(); lblDMRequiredMods.setFocusable(false); lblDMRequiredMods.setEditable(false); lblDMRequiredMods.setText("Required Mods: "); lblDMRequiredMods.setWrapStyleWord(true); lblDMRequiredMods.setLineWrap(true); lblDMRequiredMods.setBorder(new LineBorder(new Color(0, 0, 0))); lblDMRequiredMods.setBackground(Color.LIGHT_GRAY); lblDMRequiredMods.setBounds(403, 208, 285, 57); panelDownloadMods.add(lblDMRequiredMods); lblDLModLicense = new JLabel(""); lblDLModLicense.setHorizontalAlignment(SwingConstants.RIGHT); lblDLModLicense.setBounds(403, 294, 285, 16); panelDownloadMods.add(lblDLModLicense); lblWipmod = new JLabel(""); lblWipmod.setBounds(395, 314, 64, 16); panelDownloadMods.add(lblWipmod); JButton btnCancel = new JButton("Cancel"); btnCancel.setToolTipText("Stop downloading"); btnCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { CurrentDownload.cancel(); } }); btnCancel.setBounds(230, 308, 72, 28); panelDownloadMods.add(btnCancel); panelOptions = new JPanel(); tabbedPane.addTab("Options", null, panelOptions, null); panelOptions.setLayout(null); scrollPane_4.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); scrollPane_4.setBounds(0, 0, 694, 342); panelOptions.add(scrollPane_4); panel = new JPanel(); scrollPane_4.setViewportView(panel); panel.setLayout(null); lblCloseMclauncherAfter = new JLabel("Close McLauncher after launching Factorio?"); lblCloseMclauncherAfter.setBounds(6, 6, 274, 16); panel.add(lblCloseMclauncherAfter); lblCloseMclauncherAfter_1 = new JLabel("Close McLauncher after updating?"); lblCloseMclauncherAfter_1.setBounds(6, 34, 274, 16); panel.add(lblCloseMclauncherAfter_1); lblSortNewestDownloadable = new JLabel("Sort newest downloadable mods first?"); lblSortNewestDownloadable.setBounds(6, 62, 274, 16); panel.add(lblSortNewestDownloadable); tglbtnNewModsFirst = new JToggleButton("Toggle"); tglbtnNewModsFirst.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { lblNeedrestart.setText("McLauncher needs to restart for that to work"); writeData(); } }); tglbtnNewModsFirst.setSelected(true); tglbtnNewModsFirst.setBounds(281, 56, 66, 28); panel.add(tglbtnNewModsFirst); tglbtnCloseAfterUpdate = new JToggleButton("Toggle"); tglbtnCloseAfterUpdate.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { writeData(); } }); tglbtnCloseAfterUpdate.setBounds(281, 28, 66, 28); panel.add(tglbtnCloseAfterUpdate); tglbtnCloseAfterLaunch = new JToggleButton("Toggle"); tglbtnCloseAfterLaunch.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { writeData(); } }); tglbtnCloseAfterLaunch.setBounds(281, 0, 66, 28); panel.add(tglbtnCloseAfterLaunch); tglbtnDisplayon = new JToggleButton("On"); tglbtnDisplayon.setFont(new Font("SansSerif", Font.PLAIN, 10)); tglbtnDisplayon.setSelected(true); tglbtnDisplayon.setBounds(588, 308, 44, 28); panel.add(tglbtnDisplayon); tglbtnDisplayoff = new JToggleButton("Off"); tglbtnDisplayoff.setFont(new Font("SansSerif", Font.PLAIN, 10)); tglbtnDisplayoff.setBounds(644, 308, 44, 28); panel.add(tglbtnDisplayoff); lblInfo = new JLabel("What enabled and disabled look like"); lblInfo.setFont(new Font("SansSerif", Font.PLAIN, 10)); lblInfo.setHorizontalAlignment(SwingConstants.TRAILING); lblInfo.setBounds(359, 314, 231, 16); panel.add(lblInfo); JSeparator separator = new JSeparator(); separator.setBounds(6, 55, 676, 24); panel.add(separator); JSeparator separator_1 = new JSeparator(); separator_1.setBounds(6, 27, 676, 18); panel.add(separator_1); JSeparator separator_2 = new JSeparator(); separator_2.setBounds(6, 84, 676, 24); panel.add(separator_2); JSeparator separator_3 = new JSeparator(); separator_3.setOrientation(SwingConstants.VERTICAL); separator_3.setBounds(346, 0, 16, 336); panel.add(separator_3); lblNeedrestart = new JLabel(""); lblNeedrestart.setBounds(6, 314, 341, 16); panel.add(lblNeedrestart); tglbtnSendAnonData = new JToggleButton("Toggle"); tglbtnSendAnonData.setToolTipText("Information regarding the activity of McLauncher."); tglbtnSendAnonData.setSelected(true); //set enabled by default. tglbtnSendAnonData.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { writeData(); } }); tglbtnSendAnonData.setBounds(622, 0, 66, 28); panel.add(tglbtnSendAnonData); lblSendAnonymousUse = new JLabel("Send anonymous use data?"); lblSendAnonymousUse.setBounds(359, 6, 251, 16); panel.add(lblSendAnonymousUse); lblDeleteOldMod = new JLabel("Delete old mod before updating?"); lblDeleteOldMod.setBounds(359, 34, 251, 16); panel.add(lblDeleteOldMod); tglbtnDeleteBeforeUpdate = new JToggleButton("Toggle"); tglbtnDeleteBeforeUpdate.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { writeData(); } }); tglbtnDeleteBeforeUpdate.setBounds(622, 28, 66, 28); panel.add(tglbtnDeleteBeforeUpdate); tglbtnAlertOnModUpdateAvailable = new JToggleButton("Toggle"); tglbtnAlertOnModUpdateAvailable.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { writeData(); } }); tglbtnAlertOnModUpdateAvailable.setSelected(true); tglbtnAlertOnModUpdateAvailable.setBounds(281, 86, 66, 28); panel.add(tglbtnAlertOnModUpdateAvailable); separator_4 = new JSeparator(); separator_4.setBounds(0, 112, 676, 24); panel.add(separator_4); JLabel lblAlertModHas = new JLabel("Alert mod has update on launch?"); lblAlertModHas.setBounds(6, 92, 231, 16); panel.add(lblAlertModHas); panelChangelog = new JPanel(); tabbedPane.addTab("Changelog", null, panelChangelog, null); panelChangelog.setLayout(new BoxLayout(panelChangelog, BoxLayout.X_AXIS)); scrollPane_6 = new JScrollPane(); panelChangelog.add(scrollPane_6); textChangelog = new JTextArea(); scrollPane_6.setViewportView(textChangelog); textChangelog.setEditable(false); textChangelog.setText( "v0.4.6\r\n\r\n+Fix problem where config file would not save in the correct location. (Thanks Arano-kai)\r\n+McLauncher will now save when you select a path, or profile. (Thanks Arano-kai)\r\n+Fixed an issue where McLauncher could not get the version from a .zip mod. (Thanks Arano-kai)\r\n+Added a Cancel button to stop downloading the current mod. (Suggested by Arano-kai)\r\n\r\n\r\n\r\nv0.4.5\r\n\r\n+McLauncher should now correctly warn you on failed write/read access.\r\n+McLauncher should now work when a user has both zip and installer versions of factorio. (Thanks Jeroon)\r\n+Attempt to fix an error with dependency and .zip files, With versions. (Thanks Arano-kai)\r\n+Fix only allow single selection of mods. (Thanks Arano-kai)\r\n+Fix for the Launch+Ignore button problem on linux being cut off. (Thanks Arano-kai)\r\n+Display download progress.\r\n+Fixed an error that was thrown when clicking on some mods that had a single dependency mod.\r\n+Double clicking on a mod will now enable or disable the mod. (Thanks Arano-kai)"); btnLaunchIgnore.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (selProfile != null) { LaunchFactorioWithSelectedMods(true); //ignore errors, launch. } } }); btnLaunchIgnore.setVisible(false); //This is my test button. I use this to test things then implement them into the swing. btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { testButtonCode(e); } }); //Disable mods button. (from profile) btnDisable.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { removeMod(); } }); //Enable mods button. (to profile) btnEnable.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { addMod(); } }); //Game path button btnFind.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { findPath(); } }); //mouseClick event lister for when you click on a new profile profileList.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { selectedProfile(); } }); readData(); //Load settings init(); //some extra init getMods(); //Get the mods the user has installed }
From source file:dpcs.Interface.java
public Interface() { setIconImage(Toolkit.getDefaultToolkit().getImage(Interface.class.getResource("/graphics/Icon.png"))); setTitle("Droid PC Suite"); setResizable(false);//from w ww .j a v a 2s.c o m setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 1088, 715); try { InputStreamReader reader2 = new InputStreamReader( getClass().getResourceAsStream("/others/app-version.txt")); String tmp = IOUtils.toString(reader2); AppVersion = Double.parseDouble(tmp); } catch (IOException e1) { e1.printStackTrace(); } JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); JMenu mnMenu = new JMenu("Menu"); menuBar.add(mnMenu); JMenuItem mntmExit = new JMenuItem("Exit"); mntmExit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { System.exit(0); } }); JMenu mnADBandFastbootTools = new JMenu("ADB and Fastboot tools"); mnMenu.add(mnADBandFastbootTools); mnADBandFastbootTools.setToolTipText("Access various ADB and Fastboot tools"); JMenuItem mntmDevicestate = new JMenuItem("View device state"); mntmDevicestate.setToolTipText("Check android device state"); mntmDevicestate.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { Process p1 = Runtime.getRuntime().exec("adb get-state"); p1.waitFor(); BufferedReader reader = new BufferedReader(new InputStreamReader(p1.getInputStream())); JOptionPane.showMessageDialog(null, "State: " + reader.readLine()); } catch (Exception e1) { e1.printStackTrace(); } } }); JMenuItem mntmAdbHelp = new JMenuItem("View ADB help"); mntmAdbHelp.setToolTipText("Get help regarding ADB"); mntmAdbHelp.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { ADBHelp obj = new ADBHelp(); obj.setVisible(true); } }); JMenuItem mntmNoOfUsers = new JMenuItem("Max user(s) supported?"); mntmNoOfUsers.setToolTipText("Max no. of user(s) supported by android device"); mntmNoOfUsers.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { Process p1 = Runtime.getRuntime().exec("adb shell pm get-max-users"); p1.waitFor(); BufferedReader reader = new BufferedReader(new InputStreamReader(p1.getInputStream())); JOptionPane.showMessageDialog(null, reader.readLine()); } catch (Exception e1) { e1.printStackTrace(); } } }); mnADBandFastbootTools.add(mntmNoOfUsers); mnADBandFastbootTools.add(mntmAdbHelp); JMenuItem mntmAdbVersion = new JMenuItem("View ADB version"); mntmAdbVersion.setToolTipText("Check the version of ADB installed on your computer"); mnADBandFastbootTools.add(mntmAdbVersion); mntmAdbVersion.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { Process p1 = Runtime.getRuntime().exec("adb version"); p1.waitFor(); BufferedReader reader = new BufferedReader(new InputStreamReader(p1.getInputStream())); JOptionPane.showMessageDialog(null, reader.readLine()); } catch (Exception e1) { e1.printStackTrace(); } } }); JMenuItem mntmViewDeviceList = new JMenuItem("View connected device"); mntmViewDeviceList.setToolTipText( "Displays connected device, it will show name and serial no. of the only connected device because of connectivity limit"); mntmViewDeviceList.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { JTextArea Devicelistviewer = new JTextArea(); Devicelistviewer.setEditable(false); Devicelistviewer.setForeground(Color.BLACK); Devicelistviewer.setOpaque(false); Process p1 = Runtime.getRuntime().exec("adb devices -l"); p1.waitFor(); int i = 0; String line; String[] array = new String[1024]; BufferedReader reader = new BufferedReader(new InputStreamReader(p1.getInputStream())); while ((line = reader.readLine()) != null) { array[i] = line; Devicelistviewer.append(line + "\n"); } JOptionPane.showMessageDialog(null, Devicelistviewer); } catch (Exception e1) { e1.printStackTrace(); } } }); mnADBandFastbootTools.add(mntmViewDeviceList); mnADBandFastbootTools.add(mntmDevicestate); JMenuItem mntmViewFastbootHelp = new JMenuItem("View fastboot help"); mntmViewFastbootHelp.setToolTipText("Get help regarding fastboot"); mntmViewFastbootHelp.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { FastbootHelp obj = new FastbootHelp(); obj.setVisible(true); } }); mnADBandFastbootTools.add(mntmViewFastbootHelp); JMenuItem mntmSerialNo = new JMenuItem("View serial no."); mntmSerialNo.setToolTipText("Check ADB connectivity serial no. of your android device"); mnADBandFastbootTools.add(mntmSerialNo); mntmSerialNo.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { Process p1 = Runtime.getRuntime().exec("adb get-serialno"); p1.waitFor(); BufferedReader reader = new BufferedReader(new InputStreamReader(p1.getInputStream())); JOptionPane.showMessageDialog(null, "Serial No: " + reader.readLine()); } catch (Exception e1) { e1.printStackTrace(); } } }); JMenuItem mntmWaitForDevice = new JMenuItem("Wait for device"); mntmWaitForDevice.setToolTipText("Ask ADB to wait for your device until the device can accept commands"); mntmWaitForDevice.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { Process p1 = Runtime.getRuntime().exec("adb wait-for-device"); p1.waitFor(); JOptionPane.showMessageDialog(null, "Waiting..."); } catch (Exception e1) { e1.printStackTrace(); } } }); mnADBandFastbootTools.add(mntmWaitForDevice); JMenuItem mntmDeviceFeatures = new JMenuItem("Device features"); mnMenu.add(mntmDeviceFeatures); mntmDeviceFeatures.setToolTipText("View list of features supported by the android device"); mntmDeviceFeatures.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { Devicefeatures obj = new Devicefeatures(); obj.setVisible(true); } }); JMenu mnDeviceSpecificTools = new JMenu("Device specific tools"); mnMenu.add(mnDeviceSpecificTools); mnDeviceSpecificTools.setToolTipText("View tools which only work with few or specific devices"); JMenu mnHTC = new JMenu("HTC"); mnDeviceSpecificTools.add(mnHTC); mnHTC.setToolTipText("View list of tools which only work with HTC devices"); JMenuItem mntmGetCidNo = new JMenuItem("Get CID no."); mntmGetCidNo.setToolTipText("Get CID Number of the device"); mntmGetCidNo.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { Process p1 = Runtime.getRuntime().exec("adb reboot fastboot"); p1.waitFor(); Process p2 = Runtime.getRuntime().exec("fastboot getvar cid"); p2.waitFor(); BufferedReader reader = new BufferedReader(new InputStreamReader(p2.getInputStream())); JOptionPane.showMessageDialog(null, reader.readLine()); Process p3 = Runtime.getRuntime().exec("fastboot reboot"); p3.waitFor(); } catch (Exception e1) { e1.printStackTrace(); } } }); JMenuItem mntmBootloaderRelatedInfo = new JMenuItem("Bootloader related info"); mntmBootloaderRelatedInfo.setToolTipText("View CID No.,Main-ver, bootloader info Etc."); mntmBootloaderRelatedInfo.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { Process p1 = Runtime.getRuntime().exec("adb reboot fastboot"); p1.waitFor(); Process p2 = Runtime.getRuntime().exec("fastboot getvar all"); p2.waitFor(); BufferedReader reader = new BufferedReader(new InputStreamReader(p2.getInputStream())); JOptionPane.showMessageDialog(null, reader.readLine() + "\n"); Process p3 = Runtime.getRuntime().exec("fastboot reboot"); p3.waitFor(); } catch (Exception e1) { e1.printStackTrace(); } } }); mnHTC.add(mntmBootloaderRelatedInfo); mnHTC.add(mntmGetCidNo); JMenuItem mntmWriteSuperCIDNo = new JMenuItem("Write Super CID no."); mntmWriteSuperCIDNo.setToolTipText("Write Super CID Number to device"); mntmWriteSuperCIDNo.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { int supercidno; Process p1 = Runtime.getRuntime().exec("adb reboot fastboot"); p1.waitFor(); supercidno = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter the Super CID Number to be written :\nfor ex. 11111111")); Process p2 = Runtime.getRuntime().exec("fastboot oem writecid " + supercidno); p2.waitFor(); JOptionPane.showMessageDialog(null, "Done, Click OK to reboot"); Process p3 = Runtime.getRuntime().exec("fastboot reboot"); p3.waitFor(); } catch (Exception e1) { e1.printStackTrace(); } } }); mnHTC.add(mntmWriteSuperCIDNo); JMenu mnSamsung = new JMenu("Samsung"); mnSamsung.setToolTipText("View list of tools which only work with Samsung devices"); mnDeviceSpecificTools.add(mnSamsung); JMenuItem mntmDownloadMode = new JMenuItem("Download Mode"); mntmDownloadMode.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { ApplicationStatus.setText("Rebooting..."); Process p1 = Runtime.getRuntime().exec("adb reboot download"); p1.waitFor(); ApplicationStatus.setText("Done"); } catch (Exception e1) { System.err.println(e1); } } }); mntmDownloadMode.setToolTipText( "Reboot to Download Mode for flashing firmware to samsung device using Odin or Heimdall"); mnSamsung.add(mntmDownloadMode); mnMenu.add(mntmExit); JMenu mnHelp = new JMenu("Help"); menuBar.add(mnHelp); JMenuItem mntmCommonWorkarounds = new JMenuItem("Common workarounds"); mntmCommonWorkarounds.setToolTipText( "View solutions and tips to avoid the common problems while using this application"); mntmCommonWorkarounds.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Workarounds obj = new Workarounds(); obj.setVisible(true); } }); JMenuItem mntmAbout = new JMenuItem("About"); mntmAbout.setToolTipText("Information about the application"); mntmAbout.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { About obj = new About(); obj.setVisible(true); } }); mnHelp.add(mntmAbout); JMenuItem mntmCheckForUpdates = new JMenuItem("Check for updates"); mntmCheckForUpdates.setToolTipText("Check for the new updates of this application"); mntmCheckForUpdates.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { new Updater(); } }); JMenuItem mntmChangelog = new JMenuItem("Changelog"); mntmChangelog.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { Changelog obj = new Changelog(); obj.setVisible(true); } }); mntmChangelog.setToolTipText("View changes made to this application over the time"); mnHelp.add(mntmChangelog); mnHelp.add(mntmCheckForUpdates); mnHelp.add(mntmCommonWorkarounds); JMenuItem mntmNeedHelp = new JMenuItem("Online help"); mntmNeedHelp.setToolTipText("Get online help for Droid PC Suite"); mntmNeedHelp.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { JOptionPane.showMessageDialog(null, "Post your queries on XDA-Developers thread"); Desktop.getDesktop().browse(new URL( "http://forum.xda-developers.com/android/development/tool-droid-pc-suite-t3398599") .toURI()); } catch (Exception e) { System.err.println(e); } } }); JMenuItem mntmForceConnect = new JMenuItem("Force connect"); mnHelp.add(mntmForceConnect); mntmForceConnect.setToolTipText("Force connect android device to computer using ADB protocol"); mntmForceConnect.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, "Go to developer options and turn off android debugging and turn it on again"); JOptionPane.showMessageDialog(null, "Now tap on Revoke USB debugging authorizations and confirm it by tapping OK on android device"); JOptionPane.showMessageDialog(null, "Now disconnect your android device and reconnect it via USB"); JOptionPane.showMessageDialog(null, "Reboot your device. After it completely boots up click OK"); try { adbconnected = false; Process p1 = Runtime.getRuntime().exec("adb kill-server"); p1.waitFor(); Process p2 = Runtime.getRuntime().exec("adb devices"); p2.waitFor(); JOptionPane.showMessageDialog(null, "Check if your device asks to Allow USB debugging"); JOptionPane.showMessageDialog(null, "If yes check always allow from this computer checkbox and tap OK on your android device"); Process p3 = Runtime.getRuntime().exec("adb shell touch /sdcard/.CheckADBConnection"); p3.waitFor(); Process p4 = Runtime.getRuntime().exec("adb pull /sdcard/.CheckADBConnection"); p4.waitFor(); Process p5 = Runtime.getRuntime().exec("adb shell rm /sdcard/.CheckADBConnection"); p5.waitFor(); File file = new File(".CheckADBConnection"); if (file.exists() && !file.isDirectory()) { file.delete(); adbconnected = true; ADBConnectionLabel.setText("Device is connected"); JOptionPane.showMessageDialog(null, "Success!"); } else { adbconnected = false; ADBConnectionLabel.setText(""); ADBConnectionLabel.setText("Connect your device..."); JOptionPane.showMessageDialog(null, "Please try again or perhaps try installing your android device adb drivers on PC"); } } catch (Exception e1) { System.err.println(e1); } try { File file = new File("su"); Process p1 = Runtime.getRuntime().exec("adb pull /system/xbin/su"); p1.waitFor(); if (file.exists() && !file.isDirectory()) { file.delete(); rooted = true; RootStatusLabel.setText("Device is rooted"); } else { if (adbconnected == true) { rooted = false; RootStatusLabel.setText("Device is not rooted"); } else { rooted = false; RootStatusLabel.setText(""); } } } catch (Exception e1) { e1.printStackTrace(); } } }); JMenu mnLegalInformation = new JMenu("Legal information"); mnLegalInformation.setToolTipText("Vew legal information about the application"); mnHelp.add(mnLegalInformation); JMenuItem mntmDroidPcSuite = new JMenuItem("Droid PC Suite license"); mntmDroidPcSuite.setToolTipText("View Droid PC Suite licence"); mntmDroidPcSuite.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { GPLLicense obj = new GPLLicense(); obj.setVisible(true); } }); mnLegalInformation.add(mntmDroidPcSuite); JMenuItem mntmOpenSourceLicenses = new JMenuItem("Open source licenses"); mntmOpenSourceLicenses .setToolTipText("View other open source licences for other softwares used with this application"); mntmOpenSourceLicenses.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { ApacheLicense obj = new ApacheLicense(); obj.setVisible(true); } }); mnLegalInformation.add(mntmOpenSourceLicenses); mnHelp.add(mntmNeedHelp); contentPane = new JPanel(); contentPane.setBackground(Color.WHITE); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); ApplicationStatus = new JLabel(""); ApplicationStatus.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { if (!ApplicationStatus.getText().equals("")) { int dialogButton = JOptionPane.YES_NO_OPTION; int dialogResult = JOptionPane.showConfirmDialog(null, "Do you want to clear application status?", "Application status", dialogButton); if (dialogResult == 0) { ApplicationStatus.setText(""); } } } }); JLabel lblApplicationVersion = new JLabel("Version: " + AppVersion); lblApplicationVersion.setBounds(818, 150, 135, 22); contentPane.add(lblApplicationVersion); ApplicationStatus.setBounds(12, 230, 1062, 17); contentPane.add(ApplicationStatus); RootStatusLabel = new JLabel(""); RootStatusLabel.setBounds(921, 12, 153, 17); RootStatusLabel.setForeground(Color.RED); contentPane.add(RootStatusLabel); ADBConnectionLabel = new JLabel(""); ADBConnectionLabel.setBounds(900, 0, 175, 17); ADBConnectionLabel.setForeground(Color.GREEN); contentPane.add(ADBConnectionLabel); JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); tabbedPane.setBounds(0, 255, 1075, 447); contentPane.add(tabbedPane); JPanel panel_7 = new JPanel(); panel_7.setBackground(Color.WHITE); tabbedPane.addTab("General", null, panel_7, null); panel_7.setLayout(null); JButton btnADBTerminal = new JButton("ADB Terminal"); btnADBTerminal.setToolTipText("Send commands to your android device via ADB protocol, EXPERIMENTAL!"); btnADBTerminal.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Terminal obj = new Terminal(); obj.setVisible(true); } }); JButton btnBuildpropeditor = new JButton("build.prop Editor"); btnBuildpropeditor .setToolTipText("Editor for editing build properties of your android device, Use with Caution!"); btnBuildpropeditor.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { Buildpropeditor obj = new Buildpropeditor(); obj.setVisible(true); } }); btnBuildpropeditor.setBounds(541, 27, 220, 75); panel_7.add(btnBuildpropeditor); btnADBTerminal.setBounds(25, 27, 220, 75); panel_7.add(btnADBTerminal); JLabel lblNoteInstallationTo = new JLabel("# Only for android 4.4.x and higher"); lblNoteInstallationTo.setBounds(20, 311, 1046, 15); panel_7.add(lblNoteInstallationTo); GeneralDone = new JLabel(""); GeneralDone.setText(""); GeneralDone.setBounds(766, 27, 300, 220); panel_7.add(GeneralDone); JButton btnFileManager = new JButton("File Manager"); btnFileManager.setToolTipText("Access files on your android device"); btnFileManager.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { GeneralDone.setText(""); filemanager.FileManager.main(null); } }); btnFileManager.setBounds(25, 131, 220, 75); panel_7.add(btnFileManager); JLabel lblNeedsRoot = new JLabel( "* Needs root access, also may not work with some devices regardless of root access"); lblNeedsRoot.setBounds(20, 326, 1046, 15); panel_7.add(lblNeedsRoot); JButton btnScreenshot = new JButton("Screenshot"); btnScreenshot.setToolTipText("Screenshot your android device screen"); btnScreenshot.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { Process p1 = Runtime.getRuntime().exec("adb shell screencap -p /sdcard/screenshot.png"); p1.waitFor(); JFileChooser directorychooser = new JFileChooser(); directorychooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); directorychooser.setDialogTitle("Select path to save the screenshot"); FileNameExtensionFilter filter = new FileNameExtensionFilter("PNG Files", "png"); directorychooser.setFileFilter(filter); directorychooser.setApproveButtonText("Save"); int returnVal = directorychooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { Process p2 = Runtime.getRuntime().exec("adb pull /sdcard/screenshot.png " + directorychooser.getSelectedFile().getAbsolutePath()); p2.waitFor(); } Process p3 = Runtime.getRuntime().exec("adb shell rm /sdcard/screenshot.png"); p3.waitFor(); } catch (Exception e) { e.printStackTrace(); } } }); btnScreenshot.setBounds(282, 131, 220, 75); panel_7.add(btnScreenshot); JButton btnScreenRecorder = new JButton("Screen Recorder #"); btnScreenRecorder.setToolTipText("Record android device screen"); btnScreenRecorder.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String[] options = new String[] { "5 Sec", "30 Sec", "60 Sec", "180 Sec", "Custom" }; int response = JOptionPane.showOptionDialog(null, "Select duration of recording", "Screen Recorder", JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[0]); int time = 0, bitrate = 8000000; try { if (response == 0) { time = 5; } if (response == 1) { time = 30; } if (response == 2) { time = 60; } if (response == 3) { time = 180; } if (response == 4) { time = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter the duration of recording in seconds (1 - 180): for ex. 25 for 25 Seconds")); bitrate = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter the bitrate of recording (Default = 8000000 (8Mbps))")); } JOptionPane.showMessageDialog(null, "You will need to wait for " + time + " seconds, Click ok"); Process p1 = Runtime.getRuntime().exec("adb shell screenrecord --bit-rate " + bitrate + " --time-limit " + time + " /sdcard/videorecording.mp4"); p1.waitFor(); JOptionPane.showMessageDialog(null, "Recording finished, Select destination to save the file"); JFileChooser directorychooser = new JFileChooser(); directorychooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); directorychooser.setDialogTitle("Select path to save the recording"); FileNameExtensionFilter filter = new FileNameExtensionFilter("MP4 Files", "mp4"); directorychooser.setFileFilter(filter); directorychooser.setApproveButtonText("Save"); int returnVal = directorychooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { Process p2 = Runtime.getRuntime().exec("adb pull /sdcard/videorecording.mp4 " + directorychooser.getSelectedFile().getAbsolutePath()); p2.waitFor(); } Process p3 = Runtime.getRuntime().exec("adb shell rm /sdcard/videorecording.mp4"); p3.waitFor(); } catch (Exception e) { e.printStackTrace(); } } }); btnScreenRecorder.setBounds(541, 131, 220, 75); panel_7.add(btnScreenRecorder); JButton btnAppManager = new JButton("App Manager"); btnAppManager.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { GeneralDone.setText(""); String[] MainOptions = new String[] { "Install apps", "Uninstall apps" }; int MainResponse = JOptionPane.showOptionDialog(null, "Select an operation", "App Manager", JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, MainOptions, MainOptions[0]); if (MainResponse == 0) { try { GeneralDone.setText(""); String[] options = new String[] { "User apps", "Priv-apps", "System apps" }; int response = JOptionPane.showOptionDialog(null, "Where to install the app?", "Installer", JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[0]); if (response == 0) { try { GeneralDone.setText(""); JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("APK Files", "apk"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); String filename = chooser.getSelectedFile().getName(); try { ApplicationStatus.setText("Installing..."); String[] commands = new String[3]; commands[0] = "adb"; commands[1] = "install"; commands[2] = file.getAbsolutePath(); ApplicationStatus.setText("Installing App..."); Process p1 = Runtime.getRuntime().exec(commands, null); p1.waitFor(); ApplicationStatus.setText(filename + " has been successfully installed on your android device!"); GeneralDone.setIcon( new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); } catch (Exception e1) { System.err.println(e1); } } } catch (Exception e1) { } } if (response == 1) { GeneralDone.setText(""); JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("APK Files", "apk"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); try { ApplicationStatus.setText("Installing..."); Process p1 = Runtime.getRuntime().exec("adb remount"); p1.waitFor(); String[] pushcommand = new String[4]; pushcommand[0] = "adb"; pushcommand[1] = "push"; pushcommand[2] = file.getAbsolutePath(); pushcommand[3] = "/system/priv-app/"; ApplicationStatus.setText("Installing App..."); Process p2 = Runtime.getRuntime().exec(pushcommand, null); p2.waitFor(); ApplicationStatus.setText("Rebooting your android device"); Process p3 = Runtime.getRuntime().exec("adb reboot"); p3.waitFor(); ApplicationStatus.setText(""); GeneralDone.setIcon( new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); } catch (Exception e1) { System.err.println(e1); } } } if (response == 2) { GeneralDone.setText(""); JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("APK Files", "apk"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); try { ApplicationStatus.setText("Installing..."); Process p1 = Runtime.getRuntime().exec("adb remount"); p1.waitFor(); String[] pushcommand = new String[4]; pushcommand[0] = "adb"; pushcommand[1] = "push"; pushcommand[2] = file.getAbsolutePath(); pushcommand[3] = "/system/app/"; Process p2 = Runtime.getRuntime().exec(pushcommand, null); p2.waitFor(); ApplicationStatus.setText("Rebooting your android device"); Process p3 = Runtime.getRuntime().exec("adb reboot"); p3.waitFor(); ApplicationStatus.setText(""); GeneralDone.setIcon( new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); } catch (Exception e1) { System.err.println(e1); } } } } catch (Exception e1) { } } if (MainResponse == 1) { try { GeneralDone.setText(""); String[] options = new String[] { "User apps", "Priv-apps", "System apps" }; int response = JOptionPane.showOptionDialog(null, "Which kind of app you want to uninstall?", "Uninstaller", JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[0]); if (response == 0) { try { UninstallUserApps obj = new UninstallUserApps(); obj.setVisible(true); } catch (Exception e1) { } } if (response == 1) { try { UninstallPrivApps obj = new UninstallPrivApps(); obj.setVisible(true); } catch (Exception e1) { } } if (response == 2) { try { UninstallSystemApps obj = new UninstallSystemApps(); obj.setVisible(true); } catch (Exception e1) { } } } catch (Exception e1) { } } } }); btnAppManager.setToolTipText("Manage Apps on your android device"); btnAppManager.setBounds(282, 27, 220, 75); panel_7.add(btnAppManager); JLabel lblInstallationAndUninstallation = new JLabel( "Installation and Uninstallation of apps to Priv-app is only for android 4.4 and higher, requires root and even simply may not work on your device!"); lblInstallationAndUninstallation.setBounds(20, 356, 1046, 15); panel_7.add(lblInstallationAndUninstallation); JLabel lblInstallationAndUninstallation_1 = new JLabel( "Installation and Uninstallation of apps to System requires root, and may not work for your device!"); lblInstallationAndUninstallation_1.setBounds(20, 341, 1046, 15); panel_7.add(lblInstallationAndUninstallation_1); JPanel panel_8 = new JPanel(); panel_8.setBackground(Color.WHITE); tabbedPane.addTab("Advanced", null, panel_8, null); panel_8.setLayout(null); JButton btnMemoryInformation = new JButton("Memory Information"); btnMemoryInformation.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Memoryinfo obj = new Memoryinfo(); obj.setVisible(true); } }); JButton btnClearBatteryStats = new JButton("Clear Battery Stats *"); btnClearBatteryStats.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { Process p1 = Runtime.getRuntime().exec("adb remount"); p1.waitFor(); Process p2 = Runtime.getRuntime().exec("adb shell su -c rm -r /data/system/batterystats.bin"); p2.waitFor(); String[] options = new String[] { "Yes", "No" }; int response = JOptionPane.showOptionDialog(null, "Done, would you like to reboot your device?", "Reboot device? (Recommended)", JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[0]); if (response == 0) { try { Process p3 = Runtime.getRuntime().exec("adb reboot"); p3.waitFor(); } catch (Exception e1) { } } } catch (Exception e1) { e1.printStackTrace(); } } }); btnClearBatteryStats.setToolTipText("Clear outdated or invalid battery stats"); btnClearBatteryStats.setBounds(25, 131, 220, 75); panel_8.add(btnClearBatteryStats); btnMemoryInformation.setToolTipText("View current memory information of android device"); btnMemoryInformation.setBounds(25, 236, 220, 75); panel_8.add(btnMemoryInformation); JButton btnBatteryInformation = new JButton("Battery Information"); btnBatteryInformation.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Batteryinfo obj = new Batteryinfo(); obj.setVisible(true); } }); btnBatteryInformation.setToolTipText("View current battery information of android device"); btnBatteryInformation.setBounds(541, 27, 220, 75); panel_8.add(btnBatteryInformation); JButton btnCpuInformation = new JButton("CPU Information"); btnCpuInformation.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { CPUinfo obj = new CPUinfo(); obj.setVisible(true); } }); btnCpuInformation.setToolTipText("View current CPU information of android device"); btnCpuInformation.setBounds(282, 131, 220, 75); panel_8.add(btnCpuInformation); JButton btnAppInformation = new JButton("App Information"); btnAppInformation.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Appinfo obj = new Appinfo(); obj.setVisible(true); } }); btnAppInformation.setToolTipText("View current app information of android device"); btnAppInformation.setBounds(25, 27, 220, 75); panel_8.add(btnAppInformation); JButton btnKillApps = new JButton("Kill Apps"); btnKillApps.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String[] options = new String[] { "Enter package name", "Kill all apps" }; int response = JOptionPane.showOptionDialog(null, "Which app(s) should be killed?", "Kill Apps", JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[0]); if (response == 0) { try { JOptionPane.showMessageDialog(null, "You can find an app package name from App Packages List"); String selectedapp = (JOptionPane.showInputDialog(null, "Enter app's package name:")); Process p1 = Runtime.getRuntime().exec("adb shell am force-stop " + selectedapp); p1.waitFor(); JOptionPane.showMessageDialog(null, selectedapp + " has been killed"); } catch (Exception e1) { } } if (response == 1) { try { Process p1 = Runtime.getRuntime().exec("adb shell am kill-all"); p1.waitFor(); JOptionPane.showMessageDialog(null, "All 'safe to kill' apps have been killed"); } catch (Exception e1) { } } } }); btnKillApps.setToolTipText("Kill any app currently running on android device"); btnKillApps.setBounds(541, 131, 220, 75); panel_8.add(btnKillApps); JButton btnWifiInformation = new JButton("WiFi Information"); btnWifiInformation.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Wifiinfo obj = new Wifiinfo(); obj.setVisible(true); } }); btnWifiInformation.setToolTipText("View current wifi information of android device"); btnWifiInformation.setBounds(541, 236, 220, 75); panel_8.add(btnWifiInformation); JButton btnAppPackageList = new JButton("App Packages List"); btnAppPackageList.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { AppPackagesList obj = new AppPackagesList(); obj.setVisible(true); } }); btnAppPackageList.setToolTipText("View all installed app packages list information"); btnAppPackageList.setBounds(282, 27, 220, 75); panel_8.add(btnAppPackageList); JLabel lblAdvancedToolsNote = new JLabel( "Note: All of the above tools are not supported by every device or ROM"); lblAdvancedToolsNote.setBounds(25, 345, 736, 15); panel_8.add(lblAdvancedToolsNote); JButton btnUnroot = new JButton("Unroot Device"); btnUnroot.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { File file1 = new File(".events"); if (!file1.exists()) { List<String> lines = Arrays.asList("Unroot_Warning_Shown = True"); Path file = Paths.get(".events"); Files.write(file, lines, Charset.forName("UTF-8")); JOptionPane.showMessageDialog(null, "Only the SU Binary will get removed since there are lot of different root management\napplications for android available, I can't regularly search for them and add their\nsupport to this application. If you think this concerns you, you can help me by sending\nme a list of root management applicationsfor android like supersu, kingroot, kingoroot,\netc. But I can't promise that I will add support for each of them. Cheers! :)"); } JOptionPane.showMessageDialog(null, "Unrooting work only on non-production builds of android"); Process p1 = Runtime.getRuntime().exec("adb pull /system/xbin/su"); p1.waitFor(); File file2 = new File("su"); if (file2.exists() && !file2.isDirectory()) { file2.delete(); Process p2 = Runtime.getRuntime().exec("adb remount"); p2.waitFor(); Process p3 = Runtime.getRuntime().exec("adb shell su -c rm -r /system/xbin/su"); p3.waitFor(); JOptionPane.showMessageDialog(null, "Operation completed"); } else { JOptionPane.showMessageDialog(null, "This device is not rooted"); } } catch (Exception e1) { e1.printStackTrace(); } } }); btnUnroot.setToolTipText("Unroot device by removing SU binary from the device"); btnUnroot.setBounds(282, 236, 220, 75); panel_8.add(btnUnroot); JLabel lblNewLabel_1 = new JLabel( "* Needs root access, also may not work with some devices regardless of root access"); lblNewLabel_1.setBounds(25, 372, 736, 15); panel_8.add(lblNewLabel_1); JPanel panel_10 = new JPanel(); panel_10.setBackground(Color.WHITE); tabbedPane.addTab("Developer", null, panel_10, null); panel_10.setLayout(null); JButton btnUnpackAPKs = new JButton("Unpack APKs"); btnUnpackAPKs.addActionListener(new ActionListener() { private Component parentFrame; public void actionPerformed(ActionEvent e) { File path = null; JFileChooser chooser1 = new JFileChooser(); chooser1.setDialogTitle("Select an APK file to extract"); FileNameExtensionFilter filter = new FileNameExtensionFilter("APK Files", "apk"); chooser1.setCurrentDirectory(new java.io.File(".")); chooser1.setFileFilter(filter); int returnVal = chooser1.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = chooser1.getSelectedFile(); String filename = chooser1.getSelectedFile().getName(); JFileChooser chooser2 = new JFileChooser(); chooser2.setDialogTitle("Extract APK file to"); chooser2.setCurrentDirectory(new java.io.File(".")); chooser2.setAcceptAllFileFilterUsed(false); chooser2.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); int userSelection = chooser2.showSaveDialog(parentFrame); if (userSelection == JFileChooser.APPROVE_OPTION) { path = chooser2.getSelectedFile(); } String outputDir = path.getAbsolutePath(); java.util.zip.ZipFile zipFile = null; try { zipFile = new ZipFile(file); Enumeration<? extends ZipEntry> entries = zipFile.entries(); while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); File entryDestination = new File(outputDir, entry.getName()); if (entry.isDirectory()) { entryDestination.mkdirs(); } else { entryDestination.getParentFile().mkdirs(); InputStream in = zipFile.getInputStream(entry); OutputStream out = null; out = new FileOutputStream(entryDestination); IOUtils.copy(in, out); IOUtils.closeQuietly(in); out.close(); } } zipFile.close(); JOptionPane.showMessageDialog(null, filename + " has been successfully extracted"); } catch (Exception e1) { e1.printStackTrace(); JOptionPane.showMessageDialog(null, "An error occured"); } } } }); btnUnpackAPKs.setToolTipText("Unpack APKs stored on disk"); btnUnpackAPKs.setBounds(541, 27, 220, 75); panel_10.add(btnUnpackAPKs); JButton btnRepackAPKs = new JButton("Repack APKs"); btnRepackAPKs.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { new Repacker(); } }); btnRepackAPKs.setToolTipText("Repack previously unpacked APKs and save to them to disk"); btnRepackAPKs.setBounds(25, 27, 220, 75); panel_10.add(btnRepackAPKs); JButton btnStartAnActivity = new JButton("Start an activity *"); btnStartAnActivity.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { String packagename = JOptionPane.showInputDialog(null, "Enter the package name of the app", "com.package.name"); String activityname = JOptionPane.showInputDialog(null, "Enter the activity name of the app", "MainActivity"); Process p1 = Runtime.getRuntime().exec("adb shell am start -n " + packagename + "/" + packagename + "com.package.name." + activityname); p1.waitFor(); } catch (Exception e1) { e1.printStackTrace(); } } }); btnStartAnActivity.setToolTipText("Start an actvity of an android app on your android device"); btnStartAnActivity.setBounds(282, 27, 220, 75); panel_10.add(btnStartAnActivity); JLabel lblActivityWill = new JLabel( "* An activity will not start if you enter wrong package name or activity name"); lblActivityWill.setBounds(25, 381, 736, 15); panel_10.add(lblActivityWill); JPanel panel_5 = new JPanel(); panel_5.setBackground(Color.WHITE); tabbedPane.addTab("Backup & Restore", null, panel_5, null); panel_5.setLayout(null); BackupAndRestoreDone = new JLabel(""); BackupAndRestoreDone.setText(""); BackupAndRestoreDone.setBounds(758, 70, 300, 220); panel_5.add(BackupAndRestoreDone); JLabel lblRestoreOperations = new JLabel("Restore Operations"); lblRestoreOperations.setBounds(541, 12, 142, 36); panel_5.add(lblRestoreOperations); final JButton btnRestoreFromCustomLocationBackup = new JButton("From Custom Location"); btnRestoreFromCustomLocationBackup .setToolTipText("Restore data to android device from the backup stored somewhere on the computer"); btnRestoreFromCustomLocationBackup.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { BackupAndRestoreDone.setText(""); JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("Android Backup Files", "ab"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); try { ApplicationStatus.setText("Restoring may take upto several minutes, please be patient..."); JOptionPane.showMessageDialog(null, "Unlock your device and confirm the restore operation when asked"); String[] commands = new String[3]; commands[0] = "adb"; commands[1] = "restore"; commands[2] = file.getAbsolutePath(); ApplicationStatus.setText("Restoring..."); Process p1 = Runtime.getRuntime().exec(commands, null); p1.waitFor(); ApplicationStatus.setText("Restore completed successfully!"); BackupAndRestoreDone .setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnRestoreFromCustomLocationBackup.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } } }); btnRestoreFromCustomLocationBackup.setBounds(510, 70, 220, 75); panel_5.add(btnRestoreFromCustomLocationBackup); JLabel lblBackup = new JLabel("Backup Operations"); lblBackup.setBounds(192, 12, 142, 36); panel_5.add(lblBackup); final JButton btnBackupInternelStorage = new JButton("Internel Storage"); btnBackupInternelStorage.setToolTipText("Backup android device internal storage"); btnBackupInternelStorage.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { BackupAndRestoreDone.setText(""); try { ApplicationStatus.setText("Backup can take upto several minutes, please be patient..."); JOptionPane.showMessageDialog(null, "Unlock your device and confirm the backup operation when asked"); String[] commands = new String[3]; commands[0] = "adb"; commands[1] = "backup"; commands[2] = "-shared"; ApplicationStatus.setText("Performing backup..."); Process p1 = Runtime.getRuntime().exec(commands, null); p1.waitFor(); ApplicationStatus.setText("Backup completed successfully!"); BackupAndRestoreDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnBackupInternelStorage.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } }); btnBackupInternelStorage.setBounds(270, 70, 220, 75); panel_5.add(btnBackupInternelStorage); final JButton btnBackupSingleApp = new JButton("Single App"); btnBackupSingleApp.setToolTipText("Backup a single app from android device"); btnBackupSingleApp.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { BackupAndRestoreDone.setText(""); try { String message = JOptionPane.showInputDialog(null, "Please specify a package name to backup"); ApplicationStatus.setText("Backup can take upto several minutes, please be patient..."); JOptionPane.showMessageDialog(null, "Unlock your device and confirm the backup operation when asked"); String[] commands = new String[3]; commands[0] = "adb"; commands[1] = "backup"; commands[2] = message; ApplicationStatus.setText("Performing backup..."); Process p1 = Runtime.getRuntime().exec(commands, null); p1.waitFor(); ApplicationStatus.setText("Backup completed successfully!"); BackupAndRestoreDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnBackupSingleApp.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } }); btnBackupSingleApp.setBounds(25, 184, 220, 75); panel_5.add(btnBackupSingleApp); final JButton btnBackupAppAndAppData = new JButton("App and App Data"); btnBackupAppAndAppData.setToolTipText("Backup app and it's data from android device"); btnBackupAppAndAppData.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { BackupAndRestoreDone.setText(""); try { ApplicationStatus.setText("Backup can take upto several minutes, please be patient..."); JOptionPane.showMessageDialog(null, "Unlock your device and confirm the backup operation when asked"); String[] commands = new String[3]; commands[0] = "adb"; commands[1] = "backup"; commands[2] = "-all"; ApplicationStatus.setText("Performing backup..."); Process p1 = Runtime.getRuntime().exec(commands, null); p1.waitFor(); ApplicationStatus.setText("Backup completed successfully!"); BackupAndRestoreDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnBackupAppAndAppData.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } }); btnBackupAppAndAppData.setBounds(25, 70, 220, 75); panel_5.add(btnBackupAppAndAppData); final JButton btnBackupWholeDevice = new JButton("Whole Device"); btnBackupWholeDevice.setToolTipText("Backup whole android device"); btnBackupWholeDevice.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { BackupAndRestoreDone.setText(""); try { ApplicationStatus.setText("Backup can take upto several minutes, please be patient..."); JOptionPane.showMessageDialog(null, "Unlock your device and confirm the backup operation when asked"); String[] commands = new String[6]; commands[0] = "adb"; commands[1] = "backup"; commands[2] = "-all"; commands[3] = "-apk"; commands[4] = "-shared"; commands[5] = "-system"; ApplicationStatus.setText("Performing backup..."); Process p1 = Runtime.getRuntime().exec(commands, null); p1.waitFor(); ApplicationStatus.setText("Backup completed successfully"); BackupAndRestoreDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnBackupWholeDevice.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } }); btnBackupWholeDevice.setBounds(25, 303, 220, 75); panel_5.add(btnBackupWholeDevice); final JButton btnRestorePreviousBackup = new JButton("Previous Backup"); btnRestorePreviousBackup.setToolTipText("Restore data to android device from the previous backup"); btnRestorePreviousBackup.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { BackupAndRestoreDone.setText(""); try { ApplicationStatus.setText("Restoring can take upto several minutes, please be patient..."); JOptionPane.showMessageDialog(null, "Unlock your device and confirm the restore operation when asked"); String[] commands = new String[3]; commands[0] = "adb"; commands[1] = "restore"; commands[2] = "backup.ab"; ApplicationStatus.setText("Restoring..."); Process p1 = Runtime.getRuntime().exec(commands, null); p1.waitFor(); ApplicationStatus.setText("Restore completed successfully!"); BackupAndRestoreDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnRestorePreviousBackup.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } }); btnRestorePreviousBackup.setBounds(510, 184, 220, 75); panel_5.add(btnRestorePreviousBackup); final JButton btnBackupSystem = new JButton("System"); btnBackupSystem.setToolTipText("Backup android device system"); btnBackupSystem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { BackupAndRestoreDone.setText(""); try { ApplicationStatus.setText("Backup can take upto several minutes, please be patient..."); JOptionPane.showMessageDialog(null, "Unlock your device and confirm the backup operation when asked"); String[] commands = new String[3]; commands[0] = "adb"; commands[1] = "backup"; commands[2] = "-system"; ApplicationStatus.setText("Performing backup..."); Process p1 = Runtime.getRuntime().exec(commands, null); p1.waitFor(); ApplicationStatus.setText("Backup completed successfully!"); BackupAndRestoreDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnBackupSystem.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } }); btnBackupSystem.setBounds(270, 184, 220, 75); panel_5.add(btnBackupSystem); JPanel panel_2 = new JPanel(); panel_2.setBackground(Color.WHITE); tabbedPane.addTab("Rebooter", null, panel_2, null); panel_2.setLayout(null); JLabel lblRebootFrom = new JLabel("Reboot from :"); lblRebootFrom.setBounds(25, 180, 220, 15); panel_2.add(lblRebootFrom); JLabel lblRebootTo = new JLabel("Reboot to :"); lblRebootTo.setBounds(25, 12, 220, 15); panel_2.add(lblRebootTo); JLabel lblNotFor = new JLabel("# Not for Samsung devices"); lblNotFor.setBounds(514, 359, 238, 19); panel_2.add(lblNotFor); JLabel lblDeviceMust_1 = new JLabel("Device must be in fastboot mode (Except for Reboot System)"); lblDeviceMust_1.setBounds(25, 332, 479, 19); panel_2.add(lblDeviceMust_1); JLabel lblYouMust_1 = new JLabel("* You must have a bootloader that supports fastboot commands"); lblYouMust_1.setBounds(25, 359, 470, 19); panel_2.add(lblYouMust_1); JButton btnRebootFromFastboot = new JButton("Fastboot *"); btnRebootFromFastboot.setToolTipText("Reboot android device from fastboot mode to normal"); btnRebootFromFastboot.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { ApplicationStatus.setText("Rebooting..."); Process p1 = Runtime.getRuntime().exec("fastboot reboot"); p1.waitFor(); ApplicationStatus.setText("Done"); } catch (Exception e1) { System.err.println(e1); } } }); btnRebootFromFastboot.setBounds(28, 232, 220, 75); panel_2.add(btnRebootFromFastboot); JButton btnRebootToBootloaderFromFastboot = new JButton("Fastboot to Bootloader *"); btnRebootToBootloaderFromFastboot.setToolTipText("Reboot to Bootloader mode while accessing fastboot mode"); btnRebootToBootloaderFromFastboot.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { ApplicationStatus.setText("Rebooting..."); Process p1 = Runtime.getRuntime().exec("fasboot reboot-bootloader"); p1.waitFor(); ApplicationStatus.setText("Done"); } catch (Exception e1) { System.err.println(e1); } } }); btnRebootToBootloaderFromFastboot.setBounds(281, 232, 220, 75); panel_2.add(btnRebootToBootloaderFromFastboot); JButton btnRebootToFastboot = new JButton("Fastboot"); btnRebootToFastboot.setToolTipText("Reboot android device to fastboot mode"); btnRebootToFastboot.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { ApplicationStatus.setText("Rebooting..."); Process p1 = Runtime.getRuntime().exec("adb reboot fastboot"); p1.waitFor(); ApplicationStatus.setText("Done"); } catch (Exception e1) { System.err.println(e1); } } }); btnRebootToFastboot.setBounds(281, 55, 220, 75); panel_2.add(btnRebootToFastboot); JButton btnRebootToBootloader = new JButton("Bootloader #"); btnRebootToBootloader.setToolTipText("Reboot android device to bootloader mode"); btnRebootToBootloader.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { ApplicationStatus.setText("Rebooting..."); Process p1 = Runtime.getRuntime().exec("adb reboot bootloader"); p1.waitFor(); ApplicationStatus.setText("Done"); } catch (Exception e1) { System.err.println(e1); } } }); btnRebootToBootloader.setBounds(28, 55, 220, 75); panel_2.add(btnRebootToBootloader); JButton btnRebootToRecovery = new JButton("Recovery"); btnRebootToRecovery.setToolTipText("Reboot android device to recovery mode"); btnRebootToRecovery.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { ApplicationStatus.setText("Rebooting..."); Process p1 = Runtime.getRuntime().exec("adb reboot recovery"); p1.waitFor(); ApplicationStatus.setText("Done"); } catch (Exception e1) { System.err.println(e1); } } }); btnRebootToRecovery.setBounds(532, 55, 220, 75); panel_2.add(btnRebootToRecovery); JButton btnRebootSystem = new JButton("System"); btnRebootSystem.setToolTipText("Reboot android device normally"); btnRebootSystem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { ApplicationStatus.setText("Rebooting..."); Process p1 = Runtime.getRuntime().exec("adb reboot"); p1.waitFor(); ApplicationStatus.setText("Done"); } catch (Exception e1) { System.err.println(e1); } } }); btnRebootSystem.setBounds(785, 55, 220, 75); panel_2.add(btnRebootSystem); JPanel panel_9 = new JPanel(); panel_9.setBackground(Color.WHITE); tabbedPane.addTab("Bypass Security", null, panel_9, null); panel_9.setLayout(null); JLabel lblRootOperationsexperimental = new JLabel( "Method #1 : Root Operations (Recommended) [EXPERIMENTAL] :"); lblRootOperationsexperimental.setBounds(12, 12, 507, 15); panel_9.add(lblRootOperationsexperimental); JButton btnPattern = new JButton("Pattern #"); btnPattern.setToolTipText("Remove pattern security from android device (Experimental)"); btnPattern.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { ApplicationStatus.setText("Trying to break into security..."); Process p1 = Runtime.getRuntime().exec("adb shell su -c rm /data/system/gesture.key"); p1.waitFor(); ApplicationStatus.setText( "Done, now try to unlock the device with a random pattern then change security manually from settings"); } catch (Exception e1) { } } }); btnPattern.setBounds(220, 75, 220, 75); panel_9.add(btnPattern); JButton btnPasswordPin = new JButton("Password/ PIN #"); btnPasswordPin.setToolTipText("Remove password or pin security from android device (Experimental)"); btnPasswordPin.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { ApplicationStatus.setText("Trying to break into security..."); Process p1 = Runtime.getRuntime().exec("adb shell su -c rm /data/system/password.key"); p1.waitFor(); ApplicationStatus.setText("Done, check your device..."); } catch (Exception e1) { System.err.println(e1); } } }); btnPasswordPin.setBounds(630, 75, 220, 75); panel_9.add(btnPasswordPin); JLabel lblMayNot = new JLabel("# Works on Android 4.4.x and lower"); lblMayNot.setBounds(630, 250, 366, 15); panel_9.add(lblMayNot); JLabel lblNonRoot = new JLabel("Method # 2 : Non - Root/ Root Operations [EXPERIMENTAL] :"); lblNonRoot.setBounds(12, 191, 507, 15); panel_9.add(lblNonRoot); JButton btnJellyBeanPatternPinPassword = new JButton("Pattern/ PIN/ Password *"); btnJellyBeanPatternPinPassword .setToolTipText("Remove pattern, pin or password security from android device (Experimental)"); btnJellyBeanPatternPinPassword.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { ApplicationStatus.setText("Trying to break into security..."); Process p1 = Runtime.getRuntime().exec( "adb shell am start -n com.android.settings/com.android.settings.ChooseLockGeneric --ez confirm_credentials false --ei lockscreen.password_type 0 --activity-clear-task"); p1.waitFor(); ApplicationStatus.setText("Rebooting..."); Process p2 = Runtime.getRuntime().exec("adb reboot"); p2.waitFor(); ApplicationStatus.setText("Done, check your device..."); } catch (Exception e1) { System.err.println(e1); } } }); btnJellyBeanPatternPinPassword.setBounds(220, 250, 220, 75); panel_9.add(btnJellyBeanPatternPinPassword); JLabel lblWorksWell = new JLabel("* Works well on Jelly Bean Devices but may or"); lblWorksWell.setBounds(630, 273, 366, 15); panel_9.add(lblWorksWell); JLabel lblNewLabel = new JLabel("may not work for older/ newer android versions"); lblNewLabel.setBounds(640, 293, 356, 15); panel_9.add(lblNewLabel); JPanel panel_4 = new JPanel(); panel_4.setBackground(Color.WHITE); tabbedPane.addTab("Logger", null, panel_4, null); panel_4.setLayout(null); JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(0, 72, 1072, 285); panel_4.add(scrollPane); LogViewer = new JTextArea(); LogViewer.setEditable(false); scrollPane.setViewportView(LogViewer); JButton btnSaveAsTextFile = new JButton("Save as a text file"); btnSaveAsTextFile.setToolTipText("Save printed logcat as a text file on computer"); btnSaveAsTextFile.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { if (LogViewer.getText().equals("")) { JOptionPane.showMessageDialog(null, "No log found, please click view log"); } else { ApplicationStatus.setText(""); JFrame parentFrame = new JFrame(); JFileChooser fileChooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("Text Files", "txt"); fileChooser.setFileFilter(filter); fileChooser.setDialogTitle("Save as a text file"); int userSelection = fileChooser.showSaveDialog(parentFrame); if (userSelection == JFileChooser.APPROVE_OPTION) { File fileToSave = fileChooser.getSelectedFile(); FileWriter write = null; try { write = new FileWriter(fileToSave.getAbsolutePath() + ".txt"); LogViewer.write(write); ApplicationStatus.setText("Logcat saved"); } catch (Exception e) { e.printStackTrace(); } finally { if (write != null) try { write.close(); } catch (Exception e) { e.printStackTrace(); } } } } } }); btnSaveAsTextFile.setBounds(420, 13, 220, 47); panel_4.add(btnSaveAsTextFile); JButton btnClearLogcat = new JButton("Clear"); btnClearLogcat.setToolTipText("Clean the printed logcat from the screen"); btnClearLogcat.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { LogViewer.setText(""); File file = new File(".logcat.txt"); if (file.exists() && !file.isDirectory()) { file.delete(); } ApplicationStatus.setText("Logcat cleared"); } }); btnClearLogcat.setBounds(12, 13, 220, 48); panel_4.add(btnClearLogcat); JButton btnViewLogcat = new JButton("View Logcat"); btnViewLogcat.setToolTipText("Print android device logcat on screen"); btnViewLogcat.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { ApplicationStatus.setText("Generating logcat, please wait a moment..."); try { Process p1 = Runtime.getRuntime().exec("adb logcat -d > /sdcard/.logcat.txt"); p1.waitFor(); Process p2 = Runtime.getRuntime().exec("adb logcat -c"); p2.waitFor(); Process p3 = Runtime.getRuntime().exec("adb pull /sdcard/.logcat.txt"); p3.waitFor(); Process p4 = Runtime.getRuntime().exec("adb shell rm /sdcard/.logcat.txt"); p4.waitFor(); try { Reader reader = new FileReader(new File(".logcat.txt")); LogViewer.read(reader, ""); } catch (Exception e) { e.printStackTrace(); } File file = new File(".logcat.txt"); if (file.exists() && !file.isDirectory()) { file.delete(); } ApplicationStatus.setText(""); } catch (Exception e) { System.err.println(e); } } }); btnViewLogcat.setBounds(838, 13, 220, 47); panel_4.add(btnViewLogcat); JLabel lblNoteLogcatG = new JLabel( "Note: Logcat generation takes some time, program may not respond for a few moments"); lblNoteLogcatG.setBounds(12, 364, 1046, 15); panel_4.add(lblNoteLogcatG); JPanel panel = new JPanel(); panel.setBackground(Color.WHITE); tabbedPane.addTab("Flasher", null, panel, null); panel.setLayout(null); final JButton btnFlashSystem = new JButton("System"); btnFlashSystem.setToolTipText("Flash system partition"); btnFlashSystem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { FlasherDone.setText(""); JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("IMG Files", "img"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); String filename = chooser.getSelectedFile().getName(); try { ApplicationStatus.setText("Flashing..."); Process p1 = Runtime.getRuntime().exec("fastboot erase system"); p1.waitFor(); String[] commands = new String[4]; commands[0] = "fastboot"; commands[1] = "flash"; commands[2] = "system"; commands[3] = file.getAbsolutePath(); Process p2 = Runtime.getRuntime().exec(commands, null); p2.waitFor(); ApplicationStatus .setText(filename + "has been successfully flashed on your android device"); FlasherDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnFlashSystem.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } } }); final JButton btnFlashData = new JButton("Data"); btnFlashData.setToolTipText("Flash data partition"); btnFlashData.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { FlasherDone.setText(""); JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("IMG Files", "img"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); String filename = chooser.getSelectedFile().getName(); try { ApplicationStatus.setText("Flashing..."); Process p1 = Runtime.getRuntime().exec("fastboot erase data"); p1.waitFor(); String[] commands = new String[4]; commands[0] = "fastboot"; commands[1] = "flash"; commands[2] = "data"; commands[3] = file.getAbsolutePath(); Process p2 = Runtime.getRuntime().exec(commands, null); p2.waitFor(); ApplicationStatus .setText(filename + "has been successfully flashed on your android device"); FlasherDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnFlashData.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } } }); final JButton btnFlashViaRecovery = new JButton("Flash via Recovery"); btnFlashViaRecovery.setToolTipText("Flash a zip archive using recovery"); btnFlashViaRecovery.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { FlasherDone.setText(""); JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("zip Files", "zip"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); try { JOptionPane.showMessageDialog(null, "Select Update via ADB from recovery menu using physical keys on your device"); String[] commands = new String[3]; commands[0] = "adb"; commands[1] = "sideload"; commands[2] = file.getAbsolutePath(); ApplicationStatus.setText("Flashing..."); Process p1 = Runtime.getRuntime().exec(commands, null); p1.waitFor(); ApplicationStatus.setText("Sideloaded..."); FlasherDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnFlashViaRecovery.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } } }); FlasherDone = new JLabel(""); FlasherDone.setText(""); FlasherDone.setBounds(760, 29, 300, 220); panel.add(FlasherDone); btnFlashViaRecovery.setBounds(25, 131, 220, 75); panel.add(btnFlashViaRecovery); btnFlashData.setBounds(541, 27, 220, 75); panel.add(btnFlashData); btnFlashSystem.setBounds(282, 236, 220, 75); panel.add(btnFlashSystem); final JButton btnFlashCache = new JButton("Cache"); btnFlashCache.setToolTipText("Flash cache partition"); btnFlashCache.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { FlasherDone.setText(""); JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("IMG Files", "img"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); String filename = chooser.getSelectedFile().getName(); try { ApplicationStatus.setText("Flashing..."); Process p1 = Runtime.getRuntime().exec("fastboot erase cache"); p1.waitFor(); String[] commands = new String[4]; commands[0] = "fastboot"; commands[1] = "flash"; commands[2] = "cache"; commands[3] = file.getAbsolutePath(); Process p2 = Runtime.getRuntime().exec(commands, null); p2.waitFor(); ApplicationStatus .setText(filename + "has been successfully flashed on your android device"); FlasherDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnFlashCache.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } } }); btnFlashCache.setBounds(282, 27, 220, 75); panel.add(btnFlashCache); final JButton btnBootImage = new JButton("Boot"); btnBootImage.setToolTipText("Flash boot partition"); btnBootImage.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { FlasherDone.setText(""); JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("IMG Files", "img"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); String filename = chooser.getSelectedFile().getName(); try { ApplicationStatus.setText("Flashing..."); Process p1 = Runtime.getRuntime().exec("fastboot erase boot"); p1.waitFor(); String[] commands = new String[4]; commands[0] = "fastboot"; commands[1] = "flash"; commands[2] = "boot"; commands[3] = file.getAbsolutePath(); Process p2 = Runtime.getRuntime().exec(commands, null); p2.waitFor(); ApplicationStatus .setText(filename + "has been successfully flashed on your android device"); FlasherDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnBootImage.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } } }); btnBootImage.setBounds(25, 27, 220, 75); panel.add(btnBootImage); final JButton btnFlashZipArchive = new JButton("Zip Archive"); btnFlashZipArchive.setToolTipText("Flash a zip archive"); btnFlashZipArchive.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { FlasherDone.setText(""); JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("zip Files", "zip"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); String filename = chooser.getSelectedFile().getName(); try { ApplicationStatus.setText("Flashing..."); String[] commands = new String[3]; commands[0] = "fastboot"; commands[1] = "flash"; commands[2] = file.getAbsolutePath(); Process p1 = Runtime.getRuntime().exec(commands, null); p1.waitFor(); ApplicationStatus .setText(filename + "has been successfully flashed on your android device"); FlasherDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnFlashZipArchive.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } } }); btnFlashZipArchive.setBounds(541, 236, 220, 75); panel.add(btnFlashZipArchive); final JButton btnFlashRecovery = new JButton("Recovery"); btnFlashRecovery.setToolTipText("Flash recovery partition"); btnFlashRecovery.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { FlasherDone.setText(""); JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("IMG Files", "img"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); String filename = chooser.getSelectedFile().getName(); try { ApplicationStatus.setText("Flashing..."); Process p1 = Runtime.getRuntime().exec("fastboot erase recovery"); p1.waitFor(); String[] commands = new String[4]; commands[0] = "fastboot"; commands[1] = "flash"; commands[2] = "recovery"; commands[3] = file.getAbsolutePath(); Process p2 = Runtime.getRuntime().exec(commands, null); p2.waitFor(); ApplicationStatus .setText(filename + "has been successfully flashed on your android device"); FlasherDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnFlashRecovery.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } } }); btnFlashRecovery.setBounds(541, 131, 220, 75); panel.add(btnFlashRecovery); JLabel lblYouMust = new JLabel( "Note: Your device's bootloader must support fastboot commands and should be in fastboot mode"); lblYouMust.setBounds(25, 356, 835, 19); panel.add(lblYouMust); final JButton btnFlashSplash = new JButton("Splash"); btnFlashSplash.setToolTipText("Flash splash partition"); btnFlashSplash.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { FlasherDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("IMG Files", "img"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); String filename = chooser.getSelectedFile().getName(); try { ApplicationStatus.setText("Flashing..."); Process p1 = Runtime.getRuntime().exec("fastboot erase splash"); p1.waitFor(); String[] commands = new String[4]; commands[0] = "fastboot"; commands[1] = "flash"; commands[2] = "splash"; commands[3] = file.getAbsolutePath(); Process p2 = Runtime.getRuntime().exec(commands, null); p2.waitFor(); ApplicationStatus .setText(filename + "has been successfully flashed on your android device"); FlasherDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnFlashSplash.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } } }); btnFlashSplash.setBounds(25, 236, 220, 75); panel.add(btnFlashSplash); JButton btnFlashRadio = new JButton("Radio"); btnFlashRadio.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { FlasherDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("IMG Files", "img"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); String filename = chooser.getSelectedFile().getName(); try { ApplicationStatus.setText("Flashing..."); Process p1 = Runtime.getRuntime().exec("fastboot erase radio"); p1.waitFor(); String[] commands = new String[4]; commands[0] = "fastboot"; commands[1] = "flash"; commands[2] = "radio"; commands[3] = file.getAbsolutePath(); Process p2 = Runtime.getRuntime().exec(commands, null); p2.waitFor(); ApplicationStatus .setText(filename + "has been successfully flashed on your android device"); FlasherDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); btnFlashSplash.setSelected(false); } catch (Exception e1) { System.err.println(e1); } } } }); btnFlashRadio.setToolTipText("Flash radio partition"); btnFlashRadio.setBounds(282, 131, 220, 75); panel.add(btnFlashRadio); JPanel panel_1 = new JPanel(); panel_1.setBackground(Color.WHITE); tabbedPane.addTab("Wiper", null, panel_1, null); panel_1.setLayout(null); WiperDone = new JLabel(""); WiperDone.setText(""); WiperDone.setBounds(758, 26, 300, 220); panel_1.add(WiperDone); JLabel label_13 = new JLabel("** Device must be rooted"); label_13.setBounds(25, 336, 252, 19); panel_1.add(label_13); JButton btnWipeRecovery = new JButton("Recovery"); btnWipeRecovery.setToolTipText("Wipe recovery partition"); btnWipeRecovery.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { WiperDone.setText(""); try { ApplicationStatus.setText("Wiping..."); Process p1 = Runtime.getRuntime().exec("fastboot erase cache"); p1.waitFor(); ApplicationStatus.setText("Recovery has been wiped"); WiperDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); } catch (Exception e1) { System.err.println(e1); } } }); btnWipeRecovery.setBounds(541, 131, 220, 75); panel_1.add(btnWipeRecovery); JButton btnWipeBoot = new JButton("Boot"); btnWipeBoot.setToolTipText("Flash boot partition"); btnWipeBoot.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { WiperDone.setText(""); try { ApplicationStatus.setText("Wiping..."); Process p1 = Runtime.getRuntime().exec("fastboot erase boot"); p1.waitFor(); ApplicationStatus.setText("Boot has been wiped"); WiperDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); } catch (Exception e1) { System.err.println(e1); } } }); btnWipeBoot.setBounds(25, 27, 220, 75); panel_1.add(btnWipeBoot); JButton btnWipeSystem = new JButton("System"); btnWipeSystem.setToolTipText("Wipe system partition"); btnWipeSystem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { WiperDone.setText(""); try { ApplicationStatus.setText("Wiping..."); Process p1 = Runtime.getRuntime().exec("fastboot erase system"); p1.waitFor(); ApplicationStatus.setText("System has been wiped"); WiperDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); } catch (Exception e1) { System.err.println(e1); } } }); btnWipeSystem.setBounds(282, 236, 220, 75); panel_1.add(btnWipeSystem); JButton btnWipeSplash = new JButton("Splash"); btnWipeSplash.setToolTipText("Wipe splash partition"); btnWipeSplash.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { WiperDone.setText(""); try { ApplicationStatus.setText("Wiping..."); Process p1 = Runtime.getRuntime().exec("fastboot erase splash"); p1.waitFor(); ApplicationStatus.setText("Splash has been wiped"); WiperDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); } catch (Exception e1) { System.err.println(e1); } } }); btnWipeSplash.setBounds(25, 236, 220, 75); panel_1.add(btnWipeSplash); JButton btnWipeData = new JButton("Data"); btnWipeData.setToolTipText("Wipe data partition"); btnWipeData.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { WiperDone.setText(""); try { ApplicationStatus.setText("Wiping..."); Process p1 = Runtime.getRuntime().exec("fastboot erase data"); p1.waitFor(); ApplicationStatus.setText("Data has been wiped"); WiperDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); } catch (Exception e1) { System.err.println(e1); } } }); btnWipeData.setBounds(25, 131, 220, 75); panel_1.add(btnWipeData); JButton btnFlashDalvikCache = new JButton("Dalvik Cache **"); btnFlashDalvikCache.setToolTipText("Wipe dalvik cache"); btnFlashDalvikCache.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { WiperDone.setText(""); try { ApplicationStatus.setText("Wiping..."); Process p1 = Runtime.getRuntime().exec("adb shell su -c rm * /data/dalvik-cache"); p1.waitFor(); Process p2 = Runtime.getRuntime().exec("adb shell su -c rm * /cache/dalvik-cache"); p2.waitFor(); ApplicationStatus.setText("Dalvik Cache has been wiped! Now rebooting device..."); Process p3 = Runtime.getRuntime().exec("adb reboot"); p3.waitFor(); ApplicationStatus.setText("Done"); WiperDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); } catch (Exception e1) { System.err.println(e1); } } }); btnFlashDalvikCache.setBounds(541, 27, 220, 75); panel_1.add(btnFlashDalvikCache); JButton btnWipeCache = new JButton("Cache"); btnWipeCache.setToolTipText("Wipe cache partition"); btnWipeCache.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { WiperDone.setText(""); try { ApplicationStatus.setText("Wiping..."); Process p1 = Runtime.getRuntime().exec("fastboot erase cache"); p1.waitFor(); ApplicationStatus.setText("Cache has been wiped! Now rebooting device..."); Process p2 = Runtime.getRuntime().exec("adb reboot"); p2.waitFor(); ApplicationStatus.setText("Done"); WiperDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); } catch (Exception e1) { System.err.println(e1); } } }); btnWipeCache.setBounds(282, 27, 220, 75); panel_1.add(btnWipeCache); JButton btnWipeRadio = new JButton("Radio"); btnWipeRadio.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { WiperDone.setText(""); try { ApplicationStatus.setText("Wiping..."); Process p1 = Runtime.getRuntime().exec("fastboot erase radio"); p1.waitFor(); ApplicationStatus.setText("Radio has been wiped"); WiperDone.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Done.png"))); } catch (Exception e1) { System.err.println(e1); } } }); btnWipeRadio.setToolTipText("Wipe radio partition"); btnWipeRadio.setBounds(282, 131, 220, 75); panel_1.add(btnWipeRadio); JLabel lblNoteYourDevices = new JLabel( "Note: Your device's bootloader must support fastboot commands and should be in fastboot mode"); lblNoteYourDevices.setBounds(25, 357, 835, 19); panel_1.add(lblNoteYourDevices); JPanel panel_3 = new JPanel(); panel_3.setBackground(Color.WHITE); tabbedPane.addTab("Bootloader", null, panel_3, null); panel_3.setLayout(null); JLabel label_17 = new JLabel("Note: Don't worry if the app says to connect your device while"); label_17.setBounds(66, 320, 600, 19); panel_3.add(label_17); JLabel label_18 = new JLabel("android is not booted ex. fastboot, bootloader, booting etc."); label_18.setBounds(66, 337, 600, 19); panel_3.add(label_18); JLabel lblOnlyForNexus = new JLabel( "Works only with specific devices ex. Nexus, Android One, FEW MTK devices etc."); lblOnlyForNexus.setBounds(66, 351, 600, 24); panel_3.add(lblOnlyForNexus); JButton btnUnlockBootloader = new JButton("Unlock Bootloader"); btnUnlockBootloader.setToolTipText("Unlock android device bootloader"); btnUnlockBootloader.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { ApplicationStatus.setText( "Unlocking bootloader will factory reset your device and may void your device warranty!"); JOptionPane.showMessageDialog(null, "You will need to re-enable USB debugging later as your device will get factory reset"); Process p1 = Runtime.getRuntime().exec("adb reboot bootloader"); p1.waitFor(); Process p2 = Runtime.getRuntime().exec("fastboot oem unlock"); p2.waitFor(); } catch (Exception e1) { System.err.println(e1); } } }); btnUnlockBootloader.setBounds(282, 27, 220, 75); panel_3.add(btnUnlockBootloader); JButton btnLockBootloader = new JButton("Lock Bootloader"); btnLockBootloader.setToolTipText("Lock android device bootloader"); btnLockBootloader.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { Process p1 = Runtime.getRuntime().exec("adb reboot bootloader"); p1.waitFor(); Process p2 = Runtime.getRuntime().exec("fastboot oem lock"); p2.waitFor(); } catch (Exception e1) { System.err.println(e1); } } }); btnLockBootloader.setBounds(25, 27, 220, 75); panel_3.add(btnLockBootloader); JPanel panel_6 = new JPanel(); panel_6.setBackground(Color.WHITE); tabbedPane.addTab("Crypto", null, panel_6, null); panel_6.setLayout(null); JButton btnSHA512 = new JButton("SHA-512"); btnSHA512.setToolTipText("Calculate SHA-512 sum of a file"); btnSHA512.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { JFileChooser chooser = new JFileChooser(); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = new File(""); ApplicationStatus.setText("Calculating..."); CalculatedCrypto.setText(DigestUtils.sha512Hex(file.getAbsolutePath())); ApplicationStatus.setText(""); } } }); btnSHA512.setBounds(541, 131, 220, 75); panel_6.add(btnSHA512); JScrollPane scrollPane_2 = new JScrollPane(); scrollPane_2.setBounds(12, 332, 900, 25); panel_6.add(scrollPane_2); InputCrypto = new JTextArea(); InputCrypto.setToolTipText("Input sum to be compared with calculated sum"); scrollPane_2.setViewportView(InputCrypto); JLabel lblLabelCalculatedSum = new JLabel("Calculated Sum :"); lblLabelCalculatedSum.setBounds(12, 240, 235, 17); panel_6.add(lblLabelCalculatedSum); JScrollPane scrollPane_1 = new JScrollPane(); scrollPane_1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); scrollPane_1.setBounds(12, 268, 900, 28); panel_6.add(scrollPane_1); CalculatedCrypto = new JTextArea(); CalculatedCrypto.setToolTipText("Calclated sum"); scrollPane_1.setViewportView(CalculatedCrypto); CalculatedCrypto.setEditable(false); JButton btnSHA384 = new JButton("SHA-384"); btnSHA384.setToolTipText("Calculate SHA-384 sum of a file"); btnSHA384.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { JFileChooser chooser = new JFileChooser(); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = new File(""); ApplicationStatus.setText("Calculating..."); CalculatedCrypto.setText(DigestUtils.sha384Hex(file.getAbsolutePath())); ApplicationStatus.setText(""); } } }); btnSHA384.setBounds(282, 131, 220, 75); panel_6.add(btnSHA384); JButton btnSHA256 = new JButton("SHA-256"); btnSHA256.setToolTipText("Calculate SHA-256 sum of a file"); btnSHA256.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { JFileChooser chooser = new JFileChooser(); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = new File(""); ApplicationStatus.setText("Calculating..."); CalculatedCrypto.setText(DigestUtils.sha256Hex(file.getAbsolutePath())); ApplicationStatus.setText(""); } } }); btnSHA256.setBounds(25, 131, 220, 75); panel_6.add(btnSHA256); JButton btnSHA1 = new JButton("SHA-1"); btnSHA1.setToolTipText("Calculate SHA-1 sum of a file"); btnSHA1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { JFileChooser chooser = new JFileChooser(); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = new File(""); ApplicationStatus.setText("Calculating..."); CalculatedCrypto.setText(DigestUtils.sha1Hex(file.getAbsolutePath())); ApplicationStatus.setText(""); } } }); btnSHA1.setBounds(541, 27, 220, 75); panel_6.add(btnSHA1); JButton btnMD5 = new JButton("MD5"); btnMD5.setToolTipText("Calculate MD5 sum of a file"); btnMD5.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { JFileChooser chooser = new JFileChooser(); int returnVal = chooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = new File(""); ApplicationStatus.setText("Calculating..."); CalculatedCrypto.setText(DigestUtils.md5Hex(file.getAbsolutePath())); ApplicationStatus.setText(""); } } }); btnMD5.setBounds(282, 27, 220, 75); panel_6.add(btnMD5); JLabel lblInputSumTo = new JLabel("Input Sum to be compared :"); lblInputSumTo.setBounds(12, 308, 235, 15); panel_6.add(lblInputSumTo); JButton btnCompare = new JButton("Compare"); btnCompare.setToolTipText("Click to compare calculated sum and input sum"); btnCompare.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (InputCrypto.getText().equals("")) { JOptionPane.showMessageDialog(null, "Please select algorithm and a file"); } if (CalculatedCrypto.getText().equals("")) { JOptionPane.showMessageDialog(null, "Please input a sum to be compared"); } else { if (InputCrypto.getText().equalsIgnoreCase(CalculatedCrypto.getText())) { JOptionPane.showMessageDialog(null, "Both sums are matched"); } else { JOptionPane.showMessageDialog(null, "Sums are not matched!"); } } } }); btnCompare.setBounds(924, 268, 134, 89); panel_6.add(btnCompare); JButton btnClearCalculatedCrypto = new JButton("Clear"); btnClearCalculatedCrypto.setToolTipText("Clear the calculated sum"); btnClearCalculatedCrypto.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { CalculatedCrypto.setText(""); InputCrypto.setText(""); } }); btnClearCalculatedCrypto.setBounds(25, 27, 220, 75); panel_6.add(btnClearCalculatedCrypto); JLabel label_2 = new JLabel(""); label_2.setBounds(50, 0, 1038, 256); label_2.setIcon(new ImageIcon(Interface.class.getResource("/graphics/Interface_logo.png"))); contentPane.add(label_2); new Updater(); Thread t = new Thread(r); // Background services t.start(); Runtime.getRuntime().addShutdownHook(new Thread() { // Exit sequence public void run() { try { System.out.println("Killing ADB instance..."); Process p1 = Runtime.getRuntime().exec("adb kill-server"); p1.waitFor(); System.out.println("Cleaning cache..."); File file2 = new File(".CheckADBConnection"); if (file2.exists() && !file2.isDirectory()) { file2.delete(); } File file3 = new File("su"); if (file3.exists() && !file3.isDirectory()) { file3.delete(); } File file4 = new File(".logcat.txt"); if (file4.exists() && !file4.isDirectory()) { file4.delete(); } File file5 = new File(".userapps.txt"); if (file5.exists() && !file5.isDirectory()) { file5.delete(); } File file6 = new File(".privapps.txt"); if (file6.exists() && !file6.isDirectory()) { file6.delete(); } File file7 = new File(".systemapps.txt"); if (file7.exists() && !file7.isDirectory()) { file4.delete(); } System.out.println("Droid PC Suite terminated"); } catch (Exception e1) { e1.printStackTrace(); } } }); }