List of usage examples for javax.swing JButton setToolTipText
@BeanProperty(bound = false, preferred = true, description = "The text to display in a tool tip.") public void setToolTipText(String text)
From source file:com.lynk.hrm.ui.dialog.InfoEmployee.java
private void initComponents() { addWindowListener(new WindowAdapter() { @Override/*ww w .j av a 2 s .c o m*/ public void windowClosing(WindowEvent e) { thisWindowClosing(e); } }); setSize(836, 674); setTitle(""); setIconImage( Toolkit.getDefaultToolkit().getImage(InfoEmployee.class.getResource("/resource/image/icon.png"))); setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); getContentPane().setLayout(new BorderLayout(0, 0)); { JToolBar toolBar = new JToolBar(); toolBar.setFloatable(false); getContentPane().add(toolBar, BorderLayout.NORTH); { JButton uiSave = new JButton("?"); uiSave.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { uiSaveActionPerformed(true); } }); uiSave.setFocusable(false); uiSave.setIcon(new ImageIcon(InfoEmployee.class.getResource("/resource/image/emp_save.png"))); uiSave.setFont(APP_FONT); toolBar.add(uiSave); } toolBar.addSeparator(); { JButton uiReadIdCard = new JButton("??"); uiReadIdCard.setFont(APP_FONT); uiReadIdCard.setIcon( new ImageIcon(InfoEmployee.class.getResource("/resource/image/manager_teacher.png"))); uiReadIdCard.setFocusable(false); uiReadIdCard.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { uiReadIdCardActionPerformed(e); } }); toolBar.add(uiReadIdCard); } toolBar.addSeparator(); { JButton uiInputFinger = new JButton(""); uiInputFinger.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { uiInputFingerActionPerformed(e); } }); uiInputFinger.setIcon(new ImageIcon(InfoEmployee.class.getResource("/resource/image/finger.png"))); uiInputFinger.setFont(APP_FONT); uiInputFinger.setFocusable(false); toolBar.add(uiInputFinger); } toolBar.addSeparator(); { JButton uiSetSuspend = new JButton("??"); uiSetSuspend.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { uiSetSuspendActionPerformed(e); } }); uiSetSuspend .setIcon(new ImageIcon(InfoEmployee.class.getResource("/resource/image/emp_retire.png"))); uiSetSuspend.setFont(APP_FONT); uiSetSuspend.setFocusable(false); toolBar.add(uiSetSuspend); } } { JPanel panel = new JPanel(); getContentPane().add(panel); panel.setLayout(new MigLayout("", "[]5[grow]25[]5[grow]25[]5[grow]5[102]", "[][][][]")); { JLabel label = new JLabel("?"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); panel.add(label, "cell 0 0"); } { uiId = new LynkTextField(); uiId.setEditable(false); uiId.setForeground(Color.BLUE); panel.add(uiId, "cell 1 0,growx"); } { JLabel label = new JLabel("??"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); panel.add(label, "cell 2 0"); } { uiName = new LynkTextField(); uiName.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e) { uiNameFocusLost(e); } }); panel.add(uiName, "cell 3 0,growx"); } { JLabel label = new JLabel("?"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); panel.add(label, "cell 4 0"); } { uiNamePy = new LynkTextField(); panel.add(uiNamePy, "cell 5 0,growx"); } { JLabel label = new JLabel("?"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); panel.add(label, "cell 0 1"); } { uiState = new JComboBox<String>(); uiState.setForeground(Color.BLUE); uiState.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { uiStateActionPerformed(e); } }); uiState.setModel(new DefaultComboBoxModel<String>(new String[] { "", Employee.STATE_PROBATION, Employee.STATE_CONTRACT, Employee.STATE_SUSPEND, Employee.STATE_LEAVE, Employee.STATE_RETIRE, Employee.STATE_DELETE })); uiState.setFont(APP_FONT); panel.add(uiState, "cell 1 1,growx"); } { uiInfoTab = new JideTabbedPane(JTabbedPane.TOP); uiInfoTab.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { uiInfoTabStateChanged(e); } }); uiInfoTab.setColorTheme(JideTabbedPane.COLOR_THEME_DEFAULT); uiInfoTab.setFont(APP_FONT); panel.add(uiInfoTab, "cell 0 3 7 1"); { JPanel uiInfoBasic = new JPanel(); uiInfoBasic.setLayout(new MigLayout("", "[473px,grow][307px,grow]", "[grow][289px][149px]")); uiInfoTab.addTab("?", uiInfoBasic); { JPanel uiIdCardPane = new JPanel(); uiIdCardPane.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null)); uiIdCardPane.setLayout(new MigLayout("", "[]5[grow]10[]", "[][][][][40px:40px:40px,grow]")); uiInfoBasic.add(uiIdCardPane, "cell 0 0,grow"); { JLabel label = new JLabel("??"); uiIdCardPane.add(label, "cell 0 0"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiIdCard = new LynkTextField(); uiIdCardPane.add(uiIdCard, "cell 1 0,growx"); } { JPanel pane = new JPanel(); uiIdCardPane.add(pane, "cell 2 0 1 5,grow"); pane.setLayout(new MigLayout("insets 0", "[102px:102px:102px]", "[126px:126px:126px]")); { uiPhoto = new ImagePane(); pane.add(uiPhoto, "cell 0 0,grow"); } } // { // JPanel photoPane = new JPanel(); // photoPane.setLayout(new MigLayout("insets 0", "[grow]", "[grow][]")); // uiIdCardPane.add(photoPane, "cell 2 0 2 4,grow"); // { // uiPhoto = new ImagePane(); // photoPane.add(uiPhoto, "cell 0 0,grow"); // } // { // JButton uiReadIdCardDirect = new JButton("??"); // uiReadIdCardDirect.addActionListener(new ActionListener() { // public void actionPerformed(ActionEvent e) { // uiReadIdCardDirectActionPerformed(e); // } // }); // uiReadIdCardDirect.setFont(APP_FONT); // uiReadIdCardDirect.setFocusable(false); // photoPane.add(uiReadIdCardDirect, "cell 0 1,grow"); // } // } { JLabel label = new JLabel(""); uiIdCardPane.add(label, "cell 0 1"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiBirthday = new LynkTextField(); uiIdCardPane.add(uiBirthday, "cell 1 1,growx"); } { JLabel label = new JLabel(""); uiIdCardPane.add(label, "cell 0 2"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiAge = new LynkTextField(); uiIdCardPane.add(uiAge, "cell 1 2,growx"); } { JLabel label = new JLabel(""); uiIdCardPane.add(label, "cell 0 3,aligny top"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiGender = new LynkTextField(); uiIdCardPane.add(uiGender, "cell 1 3,growx,aligny top"); } { JLabel label = new JLabel("??"); label.setFont(APP_FONT); label.setHorizontalAlignment(SwingConstants.RIGHT); uiIdCardPane.add(label, "cell 0 4"); } { JScrollPane scrollPane = new JScrollPane(); uiIdCardPane.add(scrollPane, "cell 1 4,grow"); { uiCensusAddress = new JTextArea(); uiCensusAddress.setWrapStyleWord(true); uiCensusAddress.setLineWrap(true); scrollPane.setViewportView(uiCensusAddress); uiCensusAddress.setFont(APP_FONT); } } } { JPanel uiIdCardPane = new JPanel(); uiIdCardPane.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null)); uiIdCardPane .setLayout(new MigLayout("", "[]5[grow]25[]5[grow]", "[][][40px:40px:40px,grow]")); uiInfoBasic.add(uiIdCardPane, "cell 0 1,grow"); { JLabel label = new JLabel(""); uiIdCardPane.add(label, "cell 0 0"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiMarital = new JComboBox<String>(); uiIdCardPane.add(uiMarital, "cell 1 0,growx"); uiMarital.setModel(new DefaultComboBoxModel<String>( new String[] { Employee.MARITAL_YES, Employee.MARITAL_NO })); uiMarital.setFont(APP_FONT); } { JLabel label = new JLabel("?"); uiIdCardPane.add(label, "cell 2 0"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiContact = new LynkTextField(); uiIdCardPane.add(uiContact, "cell 3 0,growx"); } { JLabel label = new JLabel("?"); uiIdCardPane.add(label, "cell 0 1"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiCensus = new JComboBox<String>(); uiIdCardPane.add(uiCensus, "cell 1 1,growx"); uiCensus.setModel(new DefaultComboBoxModel<String>( new String[] { Employee.CENSUS_A, Employee.CENSUS_B, Employee.CENSUS_C, Employee.CENSUS_D, Employee.CENSUS_E, Employee.CENSUS_F })); uiCensus.setFont(APP_FONT); } { JLabel label = new JLabel("??"); uiIdCardPane.add(label, "cell 2 1"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiResidencePermit = new JComboBox<String>(); uiIdCardPane.add(uiResidencePermit, "cell 3 1,growx"); uiResidencePermit .setModel(new DefaultComboBoxModel<String>(new String[] { "", "", "" })); uiResidencePermit.setFont(APP_FONT); } { JLabel label = new JLabel(""); uiIdCardPane.add(label, "cell 0 2"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { JScrollPane scrollPane = new JScrollPane(); uiIdCardPane.add(scrollPane, "cell 1 2 3 1,grow"); { uiAddress = new JTextArea(); uiAddress.setWrapStyleWord(true); uiAddress.setLineWrap(true); scrollPane.setViewportView(uiAddress); uiAddress.setFont(APP_FONT); } } } { JPanel uiCompanyPanel = new JPanel(); uiCompanyPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null)); uiCompanyPanel.setLayout(new MigLayout("", "[]5[grow][]25[]5[grow][]", "[][][][][][][][]")); uiInfoBasic.add(uiCompanyPanel, "cell 0 2,growx,aligny top"); { JLabel label = new JLabel(Employee.SUSPEND_NOTE); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); uiCompanyPanel.add(label, "cell 0 0"); } { uiFactory = new JComboBox<String>(new DefaultComboBoxModel<String>( new String[] { Employee.FACROTY_TC, Employee.FACTORY_SX })); uiFactory.setFont(APP_FONT); uiCompanyPanel.add(uiFactory, "cell 1 0 2 1,growx"); } { JLabel label = new JLabel(""); uiCompanyPanel.add(label, "cell 3 0"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiDept = new LynkTextField(); uiDept.setEditable(false); uiCompanyPanel.add(uiDept, "cell 4 0,growx"); } { JButton uiChooseDept = new JButton(); uiChooseDept.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { uiChooseDeptActionPerformed(e); } }); uiChooseDept.setIcon(new ImageIcon( InfoEmployee.class.getResource("/resource/image/choose_more.png"))); uiChooseDept.setMargin(new Insets(1, 1, 1, 1)); uiCompanyPanel.add(uiChooseDept, "cell 5 0,growx"); } { JLabel label = new JLabel("?"); uiCompanyPanel.add(label, "cell 0 1"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiJob = new LynkTextField(); uiJob.setEditable(false); uiCompanyPanel.add(uiJob, "cell 1 1,growx"); } { JButton uiChooseJob = new JButton(); uiChooseJob.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { uiChooseJobActionPerformed(e); } }); uiChooseJob.setIcon(new ImageIcon( InfoEmployee.class.getResource("/resource/image/choose_more.png"))); uiChooseJob.setMargin(new Insets(1, 1, 1, 1)); uiCompanyPanel.add(uiChooseJob, "cell 2 1,growx"); } { JLabel label = new JLabel(Employee.SUSPEND_START); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); uiCompanyPanel.add(label, "cell 3 1"); } { uiDdg = new JComboBox<String>( new DefaultComboBoxModel<>(new String[] { Employee.DDG_N, Employee.DDG_Y })); uiDdg.setFont(APP_FONT); uiCompanyPanel.add(uiDdg, "cell 4 1 2 1,growx"); } { JLabel label = new JLabel(""); uiCompanyPanel.add(label, "cell 0 2"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiEntryDate = new JDateChooser(); uiCompanyPanel.add(uiEntryDate, "cell 1 2 2 1,growx"); uiEntryDate.setDateFormatString("yyyy-MM-dd"); uiEntryDate.setFont(APP_FONT); uiEntryDate.getJCalendar().setTodayButtonVisible(true); uiEntryDate.addPropertyChangeListener(new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { if ("date".equals(evt.getPropertyName())) { setWorkAge(); } } }); } { JLabel label = new JLabel(""); uiCompanyPanel.add(label, "cell 3 2"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiWorkAge = new LynkTextField("0"); uiCompanyPanel.add(uiWorkAge, "cell 4 2 2 1,growx"); uiWorkAge.setEditable(false); } { JLabel label = new JLabel("?"); uiCompanyPanel.add(label, "cell 0 3"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiProbation = new JDateChooser(); uiCompanyPanel.add(uiProbation, "cell 1 3 2 1,growx"); uiProbation.setDateFormatString("yyyy-MM-dd"); uiProbation.setFont(APP_FONT); uiProbation.getJCalendar().setTodayButtonVisible(true); } { JLabel label = new JLabel("??"); uiCompanyPanel.add(label, "cell 3 3"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiExpiration = new JDateChooser(); uiCompanyPanel.add(uiExpiration, "cell 4 3 2 1,growx"); uiExpiration.setDateFormatString("yyyy-MM-dd"); uiExpiration.setFont(APP_FONT); uiExpiration.getJCalendar().setLeftButtonText(Employee.EXPIRATION_NO); uiExpiration.getJCalendar().setLeftButtonVisible(true); uiExpiration.getJCalendar().setRightButtonText(Employee.EXPIRATION_LONG); uiExpiration.getJCalendar().setRightButtonVisible(true); } { JLabel label = new JLabel(""); uiCompanyPanel.add(label, "cell 0 4"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiSchool = new LynkTextField(); uiCompanyPanel.add(uiSchool, "cell 1 4 2 1,growx"); } { JLabel label = new JLabel(""); uiCompanyPanel.add(label, "cell 3 4"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiDegree = new JComboBox<String>(); uiCompanyPanel.add(uiDegree, "cell 4 4 2 1,growx"); uiDegree.setMaximumRowCount(12); uiDegree.setModel(new DefaultComboBoxModel<String>(new String[] { "", Employee.DEGREE_A, Employee.DEGREE_B, Employee.DEGREE_C, Employee.DEGREE_D, Employee.DEGREE_E, Employee.DEGREE_F, Employee.DEGREE_G, Employee.DEGREE_H, Employee.DEGREE_I, Employee.DEGREE_J })); uiDegree.setFont(APP_FONT); } { JLabel label = new JLabel(""); uiCompanyPanel.add(label, "cell 0 5"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); } { uiMajor = new LynkTextField(); uiCompanyPanel.add(uiMajor, "cell 1 5 2 1,growx"); } { JLabel label = new JLabel(""); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); uiCompanyPanel.add(label, "cell 3 5"); } { uiGuide = new LynkTextField(); uiCompanyPanel.add(uiGuide, "cell 4 5 2 1,growx"); } { JLabel label = new JLabel("?"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT_BLOD); uiCompanyPanel.add(label, "cell 0 6"); } { uiPhoneShort = new LynkTextField(); uiPhoneShort.setFont(APP_FONT_BLOD); uiCompanyPanel.add(uiPhoneShort, "cell 1 6 2 1,growx"); } { JLabel label = new JLabel("?"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); uiCompanyPanel.add(label, "cell 3 6"); } { uiPerformance = new LynkTextField(); uiCompanyPanel.add(uiPerformance, "cell 4 6 2 1,growx"); } // { // JLabel label = new JLabel("??"); // label.setHorizontalAlignment(SwingConstants.RIGHT); // label.setFont(APP_FONT); // uiCompanyPanel.add(label, "cell 0 7"); // } // { // uiSuspendEnd = new LynkTextField(); // uiCompanyPanel.add(uiSuspendEnd, "cell 1 7 5 1,growx"); // } } { JPanel panel4 = new JPanel(); panel4.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null)); panel4.setLayout(new MigLayout("", "[]5[grow]", "[][][][grow][grow]")); uiInfoBasic.add(panel4, "cell 1 0 1 3,grow"); { JLabel label = new JLabel("???"); panel4.add(label, "cell 0 0,grow"); label.setFont(APP_FONT); } { uiSocialCard = new LynkTextField(); panel4.add(uiSocialCard, "cell 1 0,grow"); } { JLabel label = new JLabel("?"); panel4.add(label, "cell 0 1,grow"); label.setFont(APP_FONT); } { uiHousingCard = new LynkTextField(); panel4.add(uiHousingCard, "cell 1 1,grow"); } { JLabel label = new JLabel("??"); panel4.add(label, "cell 0 2,grow"); label.setFont(APP_FONT); } { uiBankCard = new LynkTextField(); panel4.add(uiBankCard, "cell 1 2,grow"); } { JLabel label = new JLabel("?"); panel4.add(label, "cell 0 3,growx,aligny top"); label.setFont(APP_FONT); } { JScrollPane scrollPane = new JScrollPane(); panel4.add(scrollPane, "cell 1 3,grow"); uiWorkExperience = new JTextArea(); uiWorkExperience.setFont(APP_FONT); scrollPane.setViewportView(uiWorkExperience); } { JLabel label = new JLabel(""); panel4.add(label, "cell 0 4,growx,aligny top"); label.setFont(APP_FONT); } { JScrollPane scrollPane = new JScrollPane(); panel4.add(scrollPane, "cell 1 4,grow"); { uiNote = new JTextArea(); uiNote.setFont(APP_FONT); scrollPane.setViewportView(uiNote); } } } } { JPanel uiInfoLeave = new JPanel(); uiInfoLeave.setLayout(new MigLayout("", "[]5[150px]25[]5[150px]", "[][][][grow][]")); uiInfoTab.addTab("??", uiInfoLeave); { uiLabelLeaveDate = new JLabel("?"); uiLabelLeaveDate.setFont(APP_FONT); uiInfoLeave.add(uiLabelLeaveDate, "cell 0 0,grow"); } { uiLeaveDate = new JDateChooser(); uiLeaveDate.setDateFormatString("yyyy-MM-dd"); uiLeaveDate.setFont(APP_FONT); uiLeaveDate.getJCalendar().setTodayButtonVisible(true); uiLeaveDate.getJCalendar().setNullDateButtonVisible(true); uiInfoLeave.add(uiLeaveDate, "cell 1 0,growx,aligny top"); } { uiLabelSocialEnd = new JLabel("??"); uiLabelSocialEnd.setFont(APP_FONT); uiInfoLeave.add(uiLabelSocialEnd, "cell 0 1,grow"); } { uiLabelHousingEnd = new JLabel("?"); uiLabelHousingEnd.setFont(APP_FONT); uiInfoLeave.add(uiLabelHousingEnd, "cell 2 1,grow"); } { uiHousingEndDate = new JDateChooser(); uiHousingEndDate.setDateFormatString("yyyy-MM-dd"); uiHousingEndDate.setFont(APP_FONT); uiHousingEndDate.getJCalendar().setLeftButtonText(""); uiHousingEndDate.getJCalendar().setLeftButtonVisible(true); uiHousingEndDate.getJCalendar().setTodayButtonVisible(true); uiHousingEndDate.getJCalendar().setNullDateButtonVisible(true); uiInfoLeave.add(uiHousingEndDate, "cell 3 1,growx,aligny top"); } { uiLabelLeaveType = new JLabel("?"); uiLabelLeaveType.setFont(APP_FONT); uiInfoLeave.add(uiLabelLeaveType, "cell 0 2,grow"); } { uiSocialEndDate = new JDateChooser(); uiSocialEndDate.setDateFormatString("yyyy-MM-dd"); uiSocialEndDate.setFont(APP_FONT); uiSocialEndDate.getJCalendar().setLeftButtonText(""); uiSocialEndDate.getJCalendar().setLeftButtonVisible(true); uiSocialEndDate.getJCalendar().setTodayButtonVisible(true); uiSocialEndDate.getJCalendar().setNullDateButtonVisible(true); uiInfoLeave.add(uiSocialEndDate, "cell 1 1,growx,aligny top"); } { uiLeaveType = new JComboBox<String>(new DefaultComboBoxModel<String>( new String[] { "", Employee.LEAVE_TYPE_A, Employee.LEAVE_TYPE_B, Employee.LEAVE_TYPE_C, Employee.LEAVE_TYPE_D, Employee.LEAVE_TYPE_E, Employee.LEAVE_TYPE_F, Employee.LEAVE_TYPE_G, Employee.LEAVE_TYPE_H })); uiLeaveType.setMaximumRowCount(10); uiLeaveType.setFont(APP_FONT); uiInfoLeave.add(uiLeaveType, "cell 1 2 3 1,grow"); } { uiLabelLeaveReason = new JLabel("?"); uiLabelLeaveReason.setFont(APP_FONT); uiInfoLeave.add(uiLabelLeaveReason, "cell 0 3,growx,aligny top"); } { JScrollPane scrollPane_2 = new JScrollPane(); uiInfoLeave.add(scrollPane_2, "cell 1 3 3 1,grow"); { uiLeaveReason = new JTextArea(); scrollPane_2.setViewportView(uiLeaveReason); uiLeaveReason.setFont(APP_FONT); } } { JLabel label = new JLabel("??"); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setFont(APP_FONT); uiInfoLeave.add(label, "cell 0 4"); } { uiTimeCardLeaveCertify = new LynkTextField(); uiTimeCardLeaveCertify.setEditable(false); uiInfoLeave.add(uiTimeCardLeaveCertify, "cell 1 4 2 1,growx"); } { JButton uiPrintLeaveCertify = new JButton("???"); uiPrintLeaveCertify.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { uiPrintLeaveCertifyActionPerformed(e); } }); uiPrintLeaveCertify.setToolTipText("???!"); uiPrintLeaveCertify.setFont(APP_FONT); uiPrintLeaveCertify.setFocusable(false); uiInfoLeave.add(uiPrintLeaveCertify, "cell 3 4,alignx right"); } } { JPanel uiInfoSuspendHistory = new JPanel(); uiInfoSuspendHistory.setLayout(new BorderLayout(0, 0)); uiInfoTab.addTab("???", uiInfoSuspendHistory); { JScrollPane scrollPane = new JScrollPane(); uiInfoSuspendHistory.add(scrollPane, BorderLayout.CENTER); { suspendModel = new EmployeeSuspendModel(); uiEmpSuspend = new LynkTable(suspendModel); uiEmpSuspend.addHighlighter(UtilsClient.createAlignHighlighter()); uiEmpSuspend.setAutoResizeMode(LynkTable.AUTO_RESIZE_ALL_COLUMNS); scrollPane.setRowHeaderView(new TableRowHead(uiEmpSuspend)); scrollPane.setViewportView(uiEmpSuspend); } } } { JPanel uiInfoEmpHistory = new JPanel(); uiInfoEmpHistory.setLayout(new BorderLayout(0, 0)); uiInfoTab.addTab("?", uiInfoEmpHistory); { JPanel pane = new JPanel(); pane.setLayout(new MigLayout("", "[][][][100px:100px:100px][]", "[]")); uiInfoEmpHistory.add(pane, BorderLayout.NORTH); { JLabel label = new JLabel(""); label.setFont(APP_FONT); pane.add(label, "cell 0 0"); } { uiHistoryType = new JComboBox<String>(new DefaultComboBoxModel<>( new String[] { "", PraisePunish.TYPE_A, PraisePunish.TYPE_B, PraisePunish.TYPE_C, PraisePunish.TYPE_D, PraisePunish.TYPE_E, PraisePunish.TYPE_F, PraisePunish.TYPE_G, PraisePunish.TYPE_H })); uiHistoryType.setFont(APP_FONT); pane.add(uiHistoryType, "cell 1 0"); } { JLabel label = new JLabel("?"); label.setFont(APP_FONT); pane.add(label, "cell 2 0"); } { uiHistoryOperator = new LynkTextField(); pane.add(uiHistoryOperator, "cell 3 0,growx"); } { JButton uiRefresh = new JButton(""); uiRefresh.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { uiRefreshActionPerformed(e); } }); uiRefresh.setIcon( new ImageIcon(InfoEmployee.class.getResource("/resource/image/refresh.png"))); uiRefresh.setFont(APP_FONT); uiRefresh.setFocusable(false); pane.add(uiRefresh, "cell 4 0"); } } { JScrollPane scrollPane = new JScrollPane(); uiInfoEmpHistory.add(scrollPane, BorderLayout.CENTER); { historyModel = new EmployeeHistoryModel(); uiEmployeeHistory = new LynkTable(historyModel); uiEmployeeHistory.setColumnSize(70, 540, 50, 130, 90); scrollPane.setViewportView(uiEmployeeHistory); scrollPane.setRowHeaderView(new TableRowHead(uiEmployeeHistory)); } } } { JPanel uiInfoJobAdjustment = new JPanel(); uiInfoJobAdjustment.setLayout(new BorderLayout(0, 0)); uiInfoTab.addTab("?", uiInfoJobAdjustment); { JToolBar toolBar = new JToolBar(); toolBar.setFloatable(false); uiInfoJobAdjustment.add(toolBar, BorderLayout.NORTH); { { JButton uiAddJobAdjust = new JButton("?"); uiAddJobAdjust.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { uiAddJobAdjustActionPerformed(e); } }); uiAddJobAdjust.setIcon( new ImageIcon(InfoEmployee.class.getResource("/resource/image/add.png"))); uiAddJobAdjust.setFont(APP_FONT); toolBar.add(uiAddJobAdjust); } } } { JScrollPane scrollPane = new JScrollPane(); uiInfoJobAdjustment.add(scrollPane, BorderLayout.CENTER); { jobAdjustmentModel = new JobAdjustmentModel(); uiJobAdjustment = new LynkTable(jobAdjustmentModel); uiJobAdjustment.setColumnSize(50, 100, 100, 100, 100, 100, 80, 100, 150); scrollPane.setRowHeaderView(new TableRowHead(uiJobAdjustment)); scrollPane.setViewportView(uiJobAdjustment); } } } { JPanel uiInfoPraisePunish = new JPanel(); uiInfoTab.addTab("", uiInfoPraisePunish); uiInfoPraisePunish.setLayout( new MigLayout("", "[]10[grow]30[]10[120]5[]5[120]20[]20[][grow]", "[][grow]")); { uiPraisePunishDateStart = new JDateChooser(); uiPraisePunishDateStart.setFont(APP_FONT); uiPraisePunishDateStart.setDateFormatString("yyyy-MM-dd"); uiInfoPraisePunish.add(uiPraisePunishDateStart, "cell 3 0,growx"); } { uiPraisePunishDateEnd = new JDateChooser(); uiPraisePunishDateEnd.setFont(APP_FONT); uiPraisePunishDateEnd.setDateFormatString("yyyy-MM-dd"); uiInfoPraisePunish.add(uiPraisePunishDateEnd, "cell 5 0,growx"); } JButton uiAddPraisePunish = new JButton(""); uiAddPraisePunish.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { uiAddPraisePunishActionPerformed(e); } }); { JButton uiFindPraisePunish = new JButton(""); uiFindPraisePunish.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { uiFindPraisePunishActionPerformed(e); } }); { JLabel label = new JLabel(""); label.setFont(APP_FONT); uiInfoPraisePunish.add(label, "cell 0 0,alignx trailing"); } { uiPraisePunishType = new JComboBox<String>( new DefaultComboBoxModel<String>(new String[] { "", PraisePunish.TYPE_A, PraisePunish.TYPE_B, PraisePunish.TYPE_C, PraisePunish.TYPE_D, PraisePunish.TYPE_E, PraisePunish.TYPE_F, PraisePunish.TYPE_G })); uiPraisePunishType.setEditable(true); uiPraisePunishType.setFont(APP_FONT); uiInfoPraisePunish.add(uiPraisePunishType, "cell 1 0,growx"); } { JLabel label = new JLabel(""); label.setFont(APP_FONT); uiInfoPraisePunish.add(label, "cell 2 0"); } { JLabel label = new JLabel(""); label.setFont(APP_FONT); uiInfoPraisePunish.add(label, "cell 4 0"); } uiFindPraisePunish.setFocusable(false); uiFindPraisePunish.setIcon( new ImageIcon(InfoEmployee.class.getResource("/resource/image/refresh.png"))); uiFindPraisePunish.setFont(APP_FONT); uiInfoPraisePunish.add(uiFindPraisePunish, "cell 6 0"); } uiAddPraisePunish .setIcon(new ImageIcon(InfoEmployee.class.getResource("/resource/image/add.png"))); uiAddPraisePunish.setFont(APP_FONT); uiAddPraisePunish.setFocusable(false); uiInfoPraisePunish.add(uiAddPraisePunish, "cell 7 0"); JScrollPane scrollPane = new JScrollPane(); uiInfoPraisePunish.add(scrollPane, "cell 0 1 9 1,grow"); { praisePunishModel = new PraisePunishModel( new String[] { PraisePunish.COLUMN_TYPE, PraisePunish.COLUMN_ACTION, PraisePunish.COLUMN_ACTION_DATE, PraisePunish.COLUMN_DEAL, PraisePunish.COLUMN_DEAL_DATE, PraisePunish.COLUMN_NOTE }); uiPraisePunish = new LynkTable(praisePunishModel); uiPraisePunish.setColumnVisible( new String[] { PraisePunish.COLUMN_TYPE, PraisePunish.COLUMN_ACTION, PraisePunish.COLUMN_ACTION_DATE, PraisePunish.COLUMN_DEAL, PraisePunish.COLUMN_DEAL_DATE, PraisePunish.COLUMN_NOTE }); uiPraisePunish.setDefaultRenderer(Object.class, new PraisePunishColorRenderer()); uiPraisePunish.setMouseDoubleClick(new MouseDoubleClick() { @Override public void doubleClick(int index) { if (index != -1) { index = uiPraisePunish.convertRowIndexToModel(index); PraisePunish pp = praisePunishModel.getPp(index); pp = InfoPraisePunish.showdialog(InfoEmployee.this, pp, null); if (pp != null) { praisePunishModel.updatePp(pp); } } } }); scrollPane.setViewportView(uiPraisePunish); scrollPane.setRowHeaderView(new TableRowHead(uiPraisePunish)); } } { JPanel uiPanelVacation = new JPanel(); uiPanelVacation.setLayout(new BorderLayout()); uiInfoTab.addTab("?", uiPanelVacation); { JToolBar uiVacationToolBar = new JToolBar(); uiVacationToolBar.setFloatable(false); uiPanelVacation.add(uiVacationToolBar, BorderLayout.NORTH); { JButton uiVacationRefresh = new JButton(""); uiVacationRefresh.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { uiVacationRefreshActionPerformed(e); } }); uiVacationRefresh.setIcon( new ImageIcon(InfoEmployee.class.getResource("/resource/image/refresh.png"))); uiVacationRefresh.setFocusable(false); uiVacationRefresh.setFont(APP_FONT); uiVacationToolBar.add(uiVacationRefresh); } uiVacationToolBar.addSeparator(); { uiVacationHistoryAdd = new JButton(""); uiVacationHistoryAdd.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { uiVacationAddActionPerformed(e); } }); uiVacationHistoryAdd.setIcon( new ImageIcon(InfoEmployee.class.getResource("/resource/image/add.png"))); uiVacationHistoryAdd.setFocusable(false); uiVacationHistoryAdd.setFont(APP_FONT); uiVacationToolBar.add(uiVacationHistoryAdd); } uiVacationToolBar.addSeparator(); { JButton uiEndLastLeft = new JButton(""); uiEndLastLeft.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { uiEndLastLeftActionPerformed(e); } }); uiEndLastLeft.setIcon( new ImageIcon(InfoEmployee.class.getResource("/resource/image/add.png"))); uiEndLastLeft.setFocusable(false); uiEndLastLeft.setFont(APP_FONT); uiVacationToolBar.add(uiEndLastLeft); } } { JPanel uiPanelVacationInfo = new JPanel(); uiPanelVacation.add(uiPanelVacationInfo, BorderLayout.CENTER); uiPanelVacationInfo.setLayout(new MigLayout("", "[grow]", "[][grow]")); JPanel paneAv = new JPanel(); uiPanelVacationInfo.add(paneAv, "cell 0 0,grow"); paneAv.setLayout(new MigLayout("", "[][grow]50[][grow]", "[][][]")); { uiVacationStartEnd = new JLabel("Time"); uiVacationStartEnd.setHorizontalAlignment(SwingConstants.CENTER); paneAv.add(uiVacationStartEnd, "cell 0 0 4 1,growx"); uiVacationStartEnd.setForeground(Color.BLUE); uiVacationStartEnd.setFont(APP_FONT.deriveFont(16f)); } { JLabel labe = new JLabel(":"); paneAv.add(labe, "cell 0 1"); labe.setFont(APP_FONT.deriveFont(16f)); } { uiLastTotal = new JLabel(""); paneAv.add(uiLastTotal, "cell 1 1,alignx left"); uiLastTotal.setForeground(Color.BLUE); uiLastTotal.setFont(APP_FONT.deriveFont(16f)); } { JLabel labe = new JLabel(":"); paneAv.add(labe, "cell 2 1"); labe.setFont(APP_FONT.deriveFont(16f)); } { uiLastLeft = new JLabel(""); paneAv.add(uiLastLeft, "cell 3 1,alignx left"); uiLastLeft.setForeground(Color.BLUE); uiLastLeft.setFont(APP_FONT.deriveFont(16f)); } { JLabel labe = new JLabel(":"); paneAv.add(labe, "cell 0 2"); labe.setFont(APP_FONT.deriveFont(16f)); } { uiCurrentTotal = new JLabel(""); paneAv.add(uiCurrentTotal, "cell 1 2,alignx left"); uiCurrentTotal.setForeground(Color.BLUE); uiCurrentTotal.setFont(APP_FONT.deriveFont(16f)); } { JLabel labe = new JLabel("?:"); paneAv.add(labe, "cell 2 2"); labe.setFont(APP_FONT.deriveFont(16f)); } { uiLeftHours = new JLabel(""); paneAv.add(uiLeftHours, "cell 3 2,alignx left"); uiLeftHours.setForeground(Color.BLUE); uiLeftHours.setFont(APP_FONT.deriveFont(16f)); } JScrollPane scrollPane = new JScrollPane(); uiPanelVacationInfo.add(scrollPane, "cell 0 1,grow"); { attendanceVacationModel = new AttendanceVacationHistoryModel(); uiAttendanceVacationHistory = new LynkTable(attendanceVacationModel); uiAttendanceVacationHistory.setAutoResizeMode(LynkTable.AUTO_RESIZE_ALL_COLUMNS); scrollPane.setViewportView(uiAttendanceVacationHistory); scrollPane.setRowHeaderView(new TableRowHead(uiAttendanceVacationHistory)); } } } } } }
From source file:it.cnr.icar.eric.client.ui.swing.graph.JBGraph.java
/** * DOCUMENT ME!// www.j a v a 2s .c om * * @return DOCUMENT ME! */ public JToolBar createToolBar() { JButton button = null; JToolBar toolbar = new JToolBar(); toolbar.setFloatable(false); //TODO: SwingBoost: Localize this TreeNode tempTreeNode = new DefaultMutableTreeNode("loading object types..."); objectTypeCombo = new it.cnr.icar.eric.client.ui.swing.TreeCombo(new DefaultTreeModel(tempTreeNode)); toolbar.add(objectTypeCombo); // use a SwingWorker to get the real model, since it might not have been initialized yet final SwingWorker worker = new SwingWorker(this) { public Object doNonUILogic() { ConceptsTreeModel objectTypesTreeModel = BusinessQueryPanel.getObjectTypesTreeModel(); return objectTypesTreeModel; } public void doUIUpdateLogic() { ConceptsTreeModel objectTypesTreeModel = (ConceptsTreeModel) get(); objectTypeCombo.setModel(objectTypesTreeModel); } }; worker.start(); // Insert URL insertUrl = getClass().getClassLoader().getResource("icons/insert.gif"); ImageIcon insertIcon = new ImageIcon(insertUrl); button = toolbar.add(new AbstractAction("", insertIcon) { /** * */ private static final long serialVersionUID = 1L; public void actionPerformed(ActionEvent e) { insert(new Point(10, 10)); } }); button.setText(""); //an icon-only button button.setToolTipText("Insert"); // Toggle Connect Mode URL connectUrl = getClass().getClassLoader().getResource("icons/connecton.gif"); ImageIcon connectIcon = new ImageIcon(connectUrl); button = toolbar.add(new AbstractAction("", connectIcon) { /** * */ private static final long serialVersionUID = 657528648199915209L; public void actionPerformed(ActionEvent e) { setPortsVisible(!isPortsVisible()); URL connectUrl; if (isPortsVisible()) { connectUrl = getClass().getClassLoader().getResource("icons/connecton.gif"); } else { connectUrl = getClass().getClassLoader().getResource("icons/connectoff.gif"); } ImageIcon connectIcon = new ImageIcon(connectUrl); putValue(SMALL_ICON, connectIcon); } }); button.setText(""); //an icon-only button button.setToolTipText("Toggle Connect Mode"); // Undo toolbar.addSeparator(); URL undoUrl = getClass().getClassLoader().getResource("icons/undo.gif"); ImageIcon undoIcon = new ImageIcon(undoUrl); undo = new AbstractAction("", undoIcon) { /** * */ private static final long serialVersionUID = -740055667372297781L; public void actionPerformed(ActionEvent e) { undo(); } }; undo.setEnabled(false); button = toolbar.add(undo); button.setText(""); //an icon-only button button.setToolTipText("Undo"); // Redo URL redoUrl = getClass().getClassLoader().getResource("icons/redo.gif"); ImageIcon redoIcon = new ImageIcon(redoUrl); redo = new AbstractAction("", redoIcon) { /** * */ private static final long serialVersionUID = 5021485220988522968L; public void actionPerformed(ActionEvent e) { redo(); } }; redo.setEnabled(false); button = toolbar.add(redo); button.setText(""); //an icon-only button button.setToolTipText("Redo"); // // Edit Block // toolbar.addSeparator(); Action action; URL url; // Copy action = TransferHandler.getCopyAction(); url = getClass().getClassLoader().getResource("icons/copy.gif"); action.putValue(Action.SMALL_ICON, new ImageIcon(url)); //Commented out until we can figure out how to assign new id to copied objects //button = toolbar.add(copy = new EventRedirector(action)); button.setText(""); //an icon-only button button.setToolTipText("Copy"); // Paste action = TransferHandler.getPasteAction(); url = getClass().getClassLoader().getResource("icons/paste.gif"); action.putValue(Action.SMALL_ICON, new ImageIcon(url)); //Commented out until we can figure out how to assign new id to copied objects //button = toolbar.add(paste = new EventRedirector(action)); button.setText(""); //an icon-only button button.setToolTipText("Paste"); // Cut action = TransferHandler.getCutAction(); url = getClass().getClassLoader().getResource("icons/cut.gif"); action.putValue(Action.SMALL_ICON, new ImageIcon(url)); //Commented out until we can figure out how to assign new id to copied objects //button = toolbar.add(cut = new EventRedirector(action)); button.setText(""); //an icon-only button button.setToolTipText("Cut"); // Remove URL removeUrl = getClass().getClassLoader().getResource("icons/delete.gif"); ImageIcon removeIcon = new ImageIcon(removeUrl); remove = new AbstractAction("", removeIcon) { /** * */ private static final long serialVersionUID = 6889927067487680474L; public void actionPerformed(ActionEvent e) { if (!isSelectionEmpty()) { Object[] cells = getSelectionCells(); cells = getDescendants(cells); getModel().remove(cells); //Remove entry from map of cells on the graph for (int i = 0; i < cells.length; i++) { Object cell = cells[i]; if (cell instanceof JBGraphCell) { RegistryObject ro = ((JBGraphCell) cell).getRegistryObject(); registryObjectToCellMap.remove(ro); } } } } }; remove.setEnabled(false); button = toolbar.add(remove); button.setText(""); //an icon-only button button.setToolTipText(resourceBundle.getString("menu.graphPanel.removeFromView")); // Zoom Std toolbar.addSeparator(); URL zoomUrl = getClass().getClassLoader().getResource("icons/zoom.gif"); ImageIcon zoomIcon = new ImageIcon(zoomUrl); button = toolbar.add(new AbstractAction("", zoomIcon) { /** * */ private static final long serialVersionUID = -4404610379022823602L; public void actionPerformed(ActionEvent e) { setScale(1.0); } }); button.setText(""); //an icon-only button button.setToolTipText("Zoom"); // Zoom In URL zoomInUrl = getClass().getClassLoader().getResource("icons/zoomin.gif"); ImageIcon zoomInIcon = new ImageIcon(zoomInUrl); button = toolbar.add(new AbstractAction("", zoomInIcon) { /** * */ private static final long serialVersionUID = 6782766891458235321L; public void actionPerformed(ActionEvent e) { setScale(2 * getScale()); } }); button.setText(""); //an icon-only button button.setToolTipText("Zoom In"); // Zoom Out URL zoomOutUrl = getClass().getClassLoader().getResource("icons/zoomout.gif"); ImageIcon zoomOutIcon = new ImageIcon(zoomOutUrl); button = toolbar.add(new AbstractAction("", zoomOutIcon) { /** * */ private static final long serialVersionUID = -5480242207934335070L; public void actionPerformed(ActionEvent e) { setScale(getScale() / 2); } }); button.setText(""); //an icon-only button button.setToolTipText("Zoom Out"); // Group /* toolbar.addSeparator(); URL groupUrl = getClass().getClassLoader().getResource("icons/group.gif"); ImageIcon groupIcon = new ImageIcon(groupUrl); group = new AbstractAction("", groupIcon) { public void actionPerformed(ActionEvent e) { group(getSelectionCells()); } }; group.setEnabled(false); //button = toolbar.add(group); button.setText(""); //an icon-only button button.setToolTipText("Group"); // Ungroup URL ungroupUrl = getClass().getClassLoader().getResource("icons/ungroup.gif"); ImageIcon ungroupIcon = new ImageIcon(ungroupUrl); ungroup = new AbstractAction("", ungroupIcon) { public void actionPerformed(ActionEvent e) { ungroup(getSelectionCells()); } }; ungroup.setEnabled(false); //button = toolbar.add(ungroup); button.setText(""); //an icon-only button button.setToolTipText("Ungroup"); */ // To Front toolbar.addSeparator(); URL toFrontUrl = getClass().getClassLoader().getResource("icons/tofront.gif"); ImageIcon toFrontIcon = new ImageIcon(toFrontUrl); tofront = new AbstractAction("", toFrontIcon) { /** * */ private static final long serialVersionUID = -4901428890590828561L; public void actionPerformed(ActionEvent e) { if (!isSelectionEmpty()) { toFront(getSelectionCells()); } } }; tofront.setEnabled(false); button = toolbar.add(tofront); button.setText(""); //an icon-only button button.setToolTipText("To Front"); // To Back URL toBackUrl = getClass().getClassLoader().getResource("icons/toback.gif"); ImageIcon toBackIcon = new ImageIcon(toBackUrl); toback = new AbstractAction("", toBackIcon) { /** * */ private static final long serialVersionUID = -5942025518651424307L; public void actionPerformed(ActionEvent e) { if (!isSelectionEmpty()) { toBack(getSelectionCells()); } } }; toback.setEnabled(false); button = toolbar.add(toback); button.setText(""); //an icon-only button button.setToolTipText("To Back"); return toolbar; }
From source file:au.org.ala.delta.intkey.Intkey.java
@Override public void addToolbarButton(boolean advancedModeOnly, boolean normalModeOnly, boolean inactiveUnlessUsedCharacters, String imageFileName, List<String> commands, String shortHelp, String fullHelp) {//ww w. j a v a2s.co m Icon icon = null; // Is the image file an absolute file? File iconFile = new File(imageFileName); if (iconFile.exists() && iconFile.isAbsolute()) { try { icon = readImageIconFromFile(iconFile); } catch (IOException ex) { displayErrorMessage(UIUtils.getResourceString("ErrorReadingIconImageFromFile.error", iconFile.getAbsolutePath())); } } // Is the image file relative to the dataset directory? if (icon == null) { File relativeIconFile = new File(_context.getDatasetDirectory(), imageFileName); if (relativeIconFile.exists() && relativeIconFile.isAbsolute()) { try { icon = readImageIconFromFile(relativeIconFile); } catch (IOException ex) { displayErrorMessage(UIUtils.getResourceString("ErrorReadingIconImageFromFile.error", iconFile.getAbsolutePath())); } } } // try getting an icon with the exact image name from the icon resources if (icon == null) { try { icon = IconHelper.createImageIconFromAbsolutePath(INTKEY_ICON_PATH + "/" + imageFileName); } catch (Exception ex) { // do nothing } } if (icon == null && imageFileName.toLowerCase().endsWith(".bmp")) { // try substituting ".bmp" for ".png" and reading from the icon // resources. All the default // icons that come with Intkey have been convert to png format. String modifiedImageFileName = imageFileName.replaceFirst(".bmp$", ".png"); try { icon = IconHelper.createImageIconFromAbsolutePath(INTKEY_ICON_PATH + "/" + modifiedImageFileName); } catch (Exception ex) { // do nothing } } if (icon == null) { displayErrorMessage(UIUtils.getResourceString("CouldNotFromImage.error", imageFileName)); return; } JButton button = new JButton(icon); button.setToolTipText(shortHelp); button.setMargin(new Insets(0, 0, 0, 0)); _pnlDynamicButtons.add(button); final List<String> commandsCopy = new ArrayList<String>(commands); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { for (String command : commandsCopy) { _context.parseAndExecuteDirective(command); } } }); if (advancedModeOnly && !normalModeOnly) { _advancedModeOnlyDynamicButtons.add(button); } if (normalModeOnly && !advancedModeOnly) { _normalModeOnlyDynamicButtons.add(button); } if (inactiveUnlessUsedCharacters) { _activeOnlyWhenCharactersUsedButtons.add(button); } _dynamicButtonsFullHelp.put(button, fullHelp); updateDynamicButtons(); }
From source file:eu.crisis_economics.abm.dashboard.Page_Parameters.java
private JPanel createAParameterBox(final boolean first) { final JLabel runLabel = new JLabel("<html><b>Number of runs:</b> 0</html>"); final JLabel warningLabel = new JLabel(); final JButton closeButton = new JButton(); closeButton.setOpaque(false);/*from w w w .ja v a 2 s .co m*/ closeButton.setBorder(null); closeButton.setFocusable(false); if (!first) { closeButton.setRolloverIcon(PARAMETER_BOX_REMOVE); closeButton.setRolloverEnabled(true); closeButton.setIcon(RGBGrayFilter.getDisabledIcon(closeButton, PARAMETER_BOX_REMOVE)); closeButton.setActionCommand(ACTIONCOMMAND_REMOVE_BOX); } final JScrollPane treeScrPane = new JScrollPane(); final DefaultMutableTreeNode treeRoot = new DefaultMutableTreeNode(); final JTree tree = new JTree(treeRoot); ToolTipManager.sharedInstance().registerComponent(tree); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.setCellRenderer(new ParameterBoxTreeRenderer()); tree.addTreeSelectionListener(new TreeSelectionListener() { public void valueChanged(final TreeSelectionEvent e) { final TreePath selectionPath = tree.getSelectionPath(); boolean success = true; if (editedNode != null && (selectionPath == null || !editedNode.equals(selectionPath.getLastPathComponent()))) success = modify(); if (success) { if (selectionPath != null) { cancelAllSelectionBut(tree); final DefaultMutableTreeNode node = (DefaultMutableTreeNode) selectionPath .getLastPathComponent(); if (!node.equals(editedNode)) { ParameterInATree userObj = null; final DefaultTreeModel model = (DefaultTreeModel) tree.getModel(); if (!node.isRoot() && selectionPath.getPathCount() == model.getPathToRoot(node).length) { userObj = (ParameterInATree) node.getUserObject(); final ParameterInfo info = userObj.info; editedNode = node; editedTree = tree; edit(info); } else { tree.setSelectionPath(null); if (cancelButton.isEnabled()) cancelButton.doClick(); resetSettings(); enableDisableSettings(false); editedNode = null; editedTree = null; } updateDescriptionField(userObj); } else updateDescriptionField(); } else updateDescriptionField(); enableDisableParameterCombinationButtons(); } else { final DefaultTreeModel model = (DefaultTreeModel) editedTree.getModel(); final DefaultMutableTreeNode storedEditedNode = editedNode; editedNode = null; tree.setSelectionPath(null); editedNode = storedEditedNode; editedTree.setSelectionPath(new TreePath(model.getPathToRoot(editedNode))); } } }); treeScrPane.setViewportView(tree); treeScrPane.setBorder(null); treeScrPane.setViewportBorder(null); treeScrPane.setPreferredSize(new Dimension(450, 250)); final JButton upButton = new JButton(); upButton.setOpaque(false); upButton.setRolloverEnabled(true); upButton.setIcon(PARAMETER_UP_ICON); upButton.setRolloverIcon(PARAMETER_UP_ICON_RO); upButton.setDisabledIcon(PARAMETER_UP_ICON_DIS); upButton.setBorder(null); upButton.setToolTipText("Move up the selected parameter"); upButton.setActionCommand(ACTIONCOMMAND_MOVE_UP); final JButton downButton = new JButton(); downButton.setOpaque(false); downButton.setRolloverEnabled(true); downButton.setIcon(PARAMETER_DOWN_ICON); downButton.setRolloverIcon(PARAMETER_DOWN_ICON_RO); downButton.setDisabledIcon(PARAMETER_DOWN_ICON_DIS); downButton.setBorder(null); downButton.setToolTipText("Move down the selected parameter"); downButton.setActionCommand(ACTIONCOMMAND_MOVE_DOWN); final JPanel mainPanel = FormsUtils.build("~ f:p:g ~ p ~ r:p", "012||" + "333||" + "44_||" + "445||" + "446||" + "44_ f:p:g", runLabel, first ? "" : warningLabel, first ? warningLabel : closeButton, new FormsUtils.Separator(""), treeScrPane, upButton, downButton) .getPanel(); mainPanel.setBorder(BorderFactory.createTitledBorder("")); final JButton addButton = new JButton(); addButton.setOpaque(false); addButton.setRolloverEnabled(true); addButton.setIcon(PARAMETER_ADD_ICON); addButton.setRolloverIcon(PARAMETER_ADD_ICON_RO); addButton.setDisabledIcon(PARAMETER_ADD_ICON_DIS); addButton.setBorder(null); addButton.setToolTipText("Add selected parameter"); addButton.setActionCommand(ACTIONCOMMAND_ADD_PARAM); final JButton removeButton = new JButton(); removeButton.setOpaque(false); removeButton.setRolloverEnabled(true); removeButton.setIcon(PARAMETER_REMOVE_ICON); removeButton.setRolloverIcon(PARAMETER_REMOVE_ICON_RO); removeButton.setDisabledIcon(PARAMETER_REMOVE_ICON_DIS); removeButton.setBorder(null); removeButton.setToolTipText("Remove selected parameter"); removeButton.setActionCommand(ACTIONCOMMAND_REMOVE_PARAM); final JPanel result = FormsUtils.build("p ~ f:p:g", "_0 f:p:g||" + "10 p ||" + "20 p||" + "_0 f:p:g", mainPanel, addButton, removeButton).getPanel(); Style.registerCssClasses(result, Dashboard.CSS_CLASS_COMMON_PANEL); final ParameterCombinationGUI pcGUI = new ParameterCombinationGUI(tree, treeRoot, runLabel, warningLabel, addButton, removeButton, upButton, downButton); parameterTreeBranches.add(pcGUI); final ActionListener boxActionListener = new ActionListener() { //==================================================================================================== // methods //---------------------------------------------------------------------------------------------------- public void actionPerformed(final ActionEvent e) { final String cmd = e.getActionCommand(); if (ACTIONCOMMAND_ADD_PARAM.equals(cmd)) handleAddParameter(pcGUI); else if (ACTIONCOMMAND_REMOVE_PARAM.equals(cmd)) handleRemoveParameter(tree); else if (ACTIONCOMMAND_REMOVE_BOX.equals(cmd)) handleRemoveBox(tree); else if (ACTIONCOMMAND_MOVE_UP.equals(cmd)) handleMoveUp(); else if (ACTIONCOMMAND_MOVE_DOWN.equals(cmd)) handleMoveDown(); } //---------------------------------------------------------------------------------------------------- private void handleAddParameter(final ParameterCombinationGUI pcGUI) { final Object[] selectedValues = parameterList.getSelectedValues(); if (selectedValues != null && selectedValues.length > 0) { final AvailableParameter[] params = new AvailableParameter[selectedValues.length]; System.arraycopy(selectedValues, 0, params, 0, selectedValues.length); addParameterToTree(params, pcGUI); enableDisableParameterCombinationButtons(); } } //---------------------------------------------------------------------------------------------------- private void handleRemoveParameter(final JTree tree) { final TreePath selectionPath = tree.getSelectionPath(); if (selectionPath != null) { cancelButton.doClick(); final DefaultMutableTreeNode node = (DefaultMutableTreeNode) selectionPath .getLastPathComponent(); if (!node.isRoot()) { final DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) node.getParent(); if (parentNode.isRoot()) { removeParameter(tree, node, parentNode); enableDisableParameterCombinationButtons(); } } } } //---------------------------------------------------------------------------------------------------- private void handleRemoveBox(final JTree tree) { final int answer = Utilities.askUser(dashboard, false, "Comfirmation", "This operation deletes the combination.", "All related parameter returns back to the list on the left side.", "Are you sure?"); if (answer == 1) { final DefaultTreeModel treeModel = (DefaultTreeModel) tree.getModel(); if (tree.getSelectionCount() > 0) { editedNode = null; tree.setSelectionPath(null); if (cancelButton.isEnabled()) cancelButton.doClick(); } final DefaultMutableTreeNode root = (DefaultMutableTreeNode) treeModel.getRoot(); for (int i = 0; i < root.getChildCount(); ++i) { final DefaultMutableTreeNode node = (DefaultMutableTreeNode) root.getChildAt(i); removeParameter(tree, node, root); } enableDisableParameterCombinationButtons(); parameterTreeBranches.remove(pcGUI); combinationsPanel.remove(result); combinationsPanel.revalidate(); updateNumberOfRuns(); } } //---------------------------------------------------------------------------------------------------- private void removeParameter(final JTree tree, final DefaultMutableTreeNode node, final DefaultMutableTreeNode parentNode) { final ParameterInATree userObj = (ParameterInATree) node.getUserObject(); final ParameterInfo originalInfo = findOriginalInfo(userObj.info); if (originalInfo != null) { final DefaultListModel model = (DefaultListModel) parameterList.getModel(); model.addElement(new AvailableParameter(originalInfo, currentModelHandler.getModelClass())); final DefaultTreeModel treeModel = (DefaultTreeModel) tree.getModel(); treeModel.removeNodeFromParent(node); updateNumberOfRuns(); tree.expandPath(new TreePath(treeModel.getPathToRoot(parentNode))); } else throw new IllegalStateException( "Parameter " + userObj.info.getName() + " is not found in the model."); } //---------------------------------------------------------------------------------------------------- private void handleMoveUp() { final TreePath selectionPath = tree.getSelectionPath(); if (selectionPath != null) { boolean success = true; if (editedNode != null) success = modify(); if (success) { final DefaultMutableTreeNode node = (DefaultMutableTreeNode) selectionPath .getLastPathComponent(); final DefaultMutableTreeNode parent = (DefaultMutableTreeNode) node.getParent(); if (parent == null || parent.getFirstChild().equals(node)) { tree.setSelectionPath(null); // we need this to preserve the state of the parameter settings panel tree.setSelectionPath(new TreePath(node.getPath())); return; } final int index = parent.getIndex(node); final DefaultTreeModel treemodel = (DefaultTreeModel) tree.getModel(); treemodel.removeNodeFromParent(node); treemodel.insertNodeInto(node, parent, index - 1); tree.setSelectionPath(new TreePath(node.getPath())); } } } //---------------------------------------------------------------------------------------------------- private void handleMoveDown() { final TreePath selectionPath = tree.getSelectionPath(); if (selectionPath != null) { boolean success = true; if (editedNode != null) success = modify(); if (success) { final DefaultMutableTreeNode node = (DefaultMutableTreeNode) selectionPath .getLastPathComponent(); final DefaultMutableTreeNode parent = (DefaultMutableTreeNode) node.getParent(); if (parent == null || parent.getLastChild().equals(node)) { tree.setSelectionPath(null); // we need this to preserve the state of the parameter settings panel tree.setSelectionPath(new TreePath(node.getPath())); return; } final int index = parent.getIndex(node); final DefaultTreeModel treemodel = (DefaultTreeModel) tree.getModel(); treemodel.removeNodeFromParent(node); treemodel.insertNodeInto(node, parent, index + 1); tree.setSelectionPath(new TreePath(node.getPath())); } } } }; GUIUtils.addActionListener(boxActionListener, closeButton, upButton, downButton, addButton, removeButton); result.setPreferredSize(new Dimension(500, 250)); enableDisableParameterCombinationButtons(); Style.apply(result, dashboard.getCssStyle()); return result; }
From source file:edu.ku.brc.ui.UIHelper.java
/** * Creates an icon button with tooltip and action listener. * @param iconName the name of the icon (use default size) * @param toolTipTextKey the tooltip text resource bundle key * @param al the action listener/*ww w . j a v a2s .co m*/ * @param withEmptyBorder set an empyt border * @return the JButton icon button */ public static JButton createIconBtn(final String iconName, final IconManager.IconSize size, final String toolTipTextKey, final boolean withEmptyBorder, final Action action) { JButton btn = new JButton(action) { @Override public void setEnabled(boolean enabled) { super.setEnabled(enabled); setBorder(emptyBorder); } }; btn.setOpaque(false); if (!withEmptyBorder) { btn.addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { if (((JButton) e.getSource()).isEnabled()) { ((JButton) e.getSource()).setBorder(focusBorder); } super.mouseEntered(e); } @Override public void mouseExited(MouseEvent e) { if (((JButton) e.getSource()).isEnabled()) { ((JButton) e.getSource()).setBorder(emptyBorder); } super.mouseExited(e); } }); btn.addFocusListener(new FocusListener() { public void focusGained(FocusEvent e) { if (((JButton) e.getSource()).isEnabled()) { ((JButton) e.getSource()).setBorder(focusBorder); } } public void focusLost(FocusEvent e) { if (((JButton) e.getSource()).isEnabled()) { ((JButton) e.getSource()).setBorder(emptyBorder); } } }); btn.setBorder(emptyBorder); } btn.setIcon(size != null ? IconManager.getIcon(iconName, size) : IconManager.getIcon(iconName)); btn.setText(null); if (StringUtils.isNotEmpty(toolTipTextKey)) { btn.setToolTipText(getResourceString(toolTipTextKey)); } btn.setEnabled(false); btn.setFocusable(true); btn.setMargin(new Insets(0, 0, 0, 0)); setControlSize(btn); return btn; }
From source file:eu.crisis_economics.abm.dashboard.Page_Parameters.java
@SuppressWarnings("unchecked") private List<ParameterInfo> createAndDisplayAParameterPanel( final List<ai.aitia.meme.paramsweep.batch.param.ParameterInfo<?>> batchParameters, final String title, final SubmodelInfo parent, final boolean submodelSelectionWithoutNotify, final IModelHandler currentModelHandler) { final List<ParameterMetaData> metadata = new LinkedList<ParameterMetaData>(), unknownFields = new ArrayList<ParameterMetaData>(); for (final ai.aitia.meme.paramsweep.batch.param.ParameterInfo<?> record : batchParameters) { final String parameterName = record.getName(), fieldName = StringUtils.uncapitalize(parameterName); Class<?> modelComponentType = parent == null ? currentModelHandler.getModelClass() : parent.getActualType(); while (true) { try { final Field field = modelComponentType.getDeclaredField(fieldName); final ParameterMetaData datum = new ParameterMetaData(); for (final Annotation element : field.getAnnotations()) { if (element.annotationType().getName() != Layout.class.getName()) // Proxies continue; final Class<? extends Annotation> type = element.annotationType(); datum.verboseDescription = (String) type.getMethod("VerboseDescription").invoke(element); datum.banner = (String) type.getMethod("Title").invoke(element); datum.fieldName = (String) " " + type.getMethod("FieldName").invoke(element); datum.imageFileName = (String) type.getMethod("Image").invoke(element); datum.layoutOrder = (Double) type.getMethod("Order").invoke(element); }//ww w .j a va 2 s. c om datum.parameter = record; if (datum.fieldName.trim().isEmpty()) datum.fieldName = parameterName.replaceAll("([A-Z])", " $1"); metadata.add(datum); break; } catch (final SecurityException e) { } catch (final NoSuchFieldException e) { } catch (final IllegalArgumentException e) { } catch (final IllegalAccessException e) { } catch (final InvocationTargetException e) { } catch (final NoSuchMethodException e) { } modelComponentType = modelComponentType.getSuperclass(); if (modelComponentType == null) { ParameterMetaData.createAndRegisterUnknown(fieldName, record, unknownFields); break; } } } Collections.sort(metadata); for (int i = unknownFields.size() - 1; i >= 0; --i) metadata.add(0, unknownFields.get(i)); // initialize single run form final DefaultFormBuilder formBuilder = FormsUtils.build("p ~ p:g", ""); appendMinimumWidthHintToPresentation(formBuilder, 550); if (parent == null) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { numberOfTurnsField.grabFocus(); } }); appendBannerToPresentation(formBuilder, "General Parameters"); appendTextToPresentation(formBuilder, "Global parameters affecting the entire simulation"); formBuilder.append(NUMBER_OF_TURNS_LABEL_TEXT, numberOfTurnsField); formBuilder.append(NUMBER_OF_TIMESTEPS_TO_IGNORE_LABEL_TEXT, numberTimestepsIgnored); appendCheckBoxFieldToPresentation(formBuilder, UPDATE_CHARTS_LABEL_TEXT, onLineChartsCheckBox); appendCheckBoxFieldToPresentation(formBuilder, DISPLAY_ADVANCED_CHARTS_LABEL_TEXT, advancedChartsCheckBox); } appendBannerToPresentation(formBuilder, title); final DefaultMutableTreeNode parentNode = (parent == null) ? parameterValueComponentTree : findParameterInfoNode(parent, false); final List<ParameterInfo> info = new ArrayList<ParameterInfo>(); // Search for a @ConfigurationComponent annotation { String headerText = "", imagePath = ""; final Class<?> parentType = parent == null ? currentModelHandler.getModelClass() : parent.getActualType(); for (final Annotation element : parentType.getAnnotations()) { // Proxies if (element.annotationType().getName() != ConfigurationComponent.class.getName()) continue; boolean doBreak = false; try { try { headerText = (String) element.annotationType().getMethod("Description").invoke(element); if (headerText.startsWith("#")) { headerText = (String) parent.getActualType().getMethod(headerText.substring(1)) .invoke(parent.getInstance()); } doBreak = true; } catch (IllegalArgumentException e) { } catch (SecurityException e) { } catch (IllegalAccessException e) { } catch (InvocationTargetException e) { } catch (NoSuchMethodException e) { } } catch (final Exception e) { } try { imagePath = (String) element.annotationType().getMethod("ImagePath").invoke(element); doBreak = true; } catch (IllegalArgumentException e) { } catch (SecurityException e) { } catch (IllegalAccessException e) { } catch (InvocationTargetException e) { } catch (NoSuchMethodException e) { } if (doBreak) break; } if (!headerText.isEmpty()) appendHeaderTextToPresentation(formBuilder, headerText); if (!imagePath.isEmpty()) appendImageToPresentation(formBuilder, imagePath); } if (metadata.isEmpty()) { // No fields to display. appendTextToPresentation(formBuilder, "No configuration is required for this module."); } else { for (final ParameterMetaData record : metadata) { final ai.aitia.meme.paramsweep.batch.param.ParameterInfo<?> batchParameterInfo = record.parameter; if (!record.banner.isEmpty()) appendBannerToPresentation(formBuilder, record.banner); if (!record.imageFileName.isEmpty()) appendImageToPresentation(formBuilder, record.imageFileName); appendTextToPresentation(formBuilder, record.verboseDescription); final ParameterInfo parameterInfo = InfoConverter.parameterInfo2ParameterInfo(batchParameterInfo); if (parent != null && parameterInfo instanceof ISubmodelGUIInfo) { // sgi.setParentValue(parent.getActualType()); } final JComponent field; final DefaultMutableTreeNode oldNode = findParameterInfoNode(parameterInfo, true); Pair<ParameterInfo, JComponent> userData = null; JComponent oldField = null; if (oldNode != null) { userData = (Pair<ParameterInfo, JComponent>) oldNode.getUserObject(); oldField = userData.getSecond(); } if (parameterInfo.isBoolean()) { field = new JCheckBox(); boolean value = oldField != null ? ((JCheckBox) oldField).isSelected() : ((Boolean) batchParameterInfo.getDefaultValue()).booleanValue(); ((JCheckBox) field).setSelected(value); } else if (parameterInfo.isEnum() || parameterInfo instanceof MasonChooserParameterInfo) { Object[] elements = null; if (parameterInfo.isEnum()) { final Class<Enum<?>> type = (Class<Enum<?>>) parameterInfo.getJavaType(); elements = type.getEnumConstants(); } else { final MasonChooserParameterInfo chooserInfo = (MasonChooserParameterInfo) parameterInfo; elements = chooserInfo.getValidStrings(); } final JComboBox list = new JComboBox(elements); if (parameterInfo.isEnum()) { final Object value = oldField != null ? ((JComboBox) oldField).getSelectedItem() : parameterInfo.getValue(); list.setSelectedItem(value); } else { final int value = oldField != null ? ((JComboBox) oldField).getSelectedIndex() : (Integer) parameterInfo.getValue(); list.setSelectedIndex(value); } field = list; } else if (parameterInfo instanceof SubmodelInfo) { final SubmodelInfo submodelInfo = (SubmodelInfo) parameterInfo; final Object[] elements = new Object[] { "Loading class information..." }; final JComboBox list = new JComboBox(elements); // field = list; final Object value = oldField != null ? ((JComboBox) ((JPanel) oldField).getComponent(0)).getSelectedItem() : new ClassElement(submodelInfo.getActualType(), null); new ClassCollector(this, list, submodelInfo, value, submodelSelectionWithoutNotify).execute(); final JButton rightButton = new JButton(); rightButton.setOpaque(false); rightButton.setRolloverEnabled(true); rightButton.setIcon(SHOW_SUBMODEL_ICON); rightButton.setRolloverIcon(SHOW_SUBMODEL_ICON_RO); rightButton.setDisabledIcon(SHOW_SUBMODEL_ICON_DIS); rightButton.setBorder(null); rightButton.setToolTipText("Display submodel parameters"); rightButton.setActionCommand(ACTIONCOMMAND_SHOW_SUBMODEL); rightButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { if (parameterInfo instanceof SubmodelInfo) { SubmodelInfo submodelInfo = (SubmodelInfo) parameterInfo; int level = 0; showHideSubparameters(list, submodelInfo); List<String> components = new ArrayList<String>(); components.add(submodelInfo.getName()); while (submodelInfo.getParent() != null) { submodelInfo = submodelInfo.getParent(); components.add(submodelInfo.getName()); level++; } Collections.reverse(components); final String[] breadcrumbText = components.toArray(new String[components.size()]); for (int i = 0; i < breadcrumbText.length; ++i) breadcrumbText[i] = breadcrumbText[i].replaceAll("([A-Z])", " $1"); breadcrumb.setPath( currentModelHandler.getModelClassSimpleName().replaceAll("([A-Z])", " $1"), breadcrumbText); Style.apply(breadcrumb, dashboard.getCssStyle()); // reset all buttons that are nested deeper than this to default color for (int i = submodelButtons.size() - 1; i >= level; i--) { JButton button = submodelButtons.get(i); button.setIcon(SHOW_SUBMODEL_ICON); submodelButtons.remove(i); } rightButton.setIcon(SHOW_SUBMODEL_ICON_RO); submodelButtons.add(rightButton); } } }); field = new JPanel(new BorderLayout()); field.add(list, BorderLayout.CENTER); field.add(rightButton, BorderLayout.EAST); } else if (File.class.isAssignableFrom(parameterInfo.getJavaType())) { field = new JPanel(new BorderLayout()); String oldName = ""; String oldPath = ""; if (oldField != null) { final JTextField oldTextField = (JTextField) oldField.getComponent(0); oldName = oldTextField.getText(); oldPath = oldTextField.getToolTipText(); } else if (parameterInfo.getValue() != null) { final File file = (File) parameterInfo.getValue(); oldName = file.getName(); oldPath = file.getAbsolutePath(); } final JTextField textField = new JTextField(oldName); textField.setToolTipText(oldPath); textField.setInputVerifier(new InputVerifier() { @Override public boolean verify(final JComponent input) { final JTextField inputField = (JTextField) input; if (inputField.getText() == null || inputField.getText().isEmpty()) { final File file = new File(""); inputField.setToolTipText(file.getAbsolutePath()); hideError(); return true; } final File oldFile = new File(inputField.getToolTipText()); if (oldFile.exists() && oldFile.getName().equals(inputField.getText().trim())) { hideError(); return true; } inputField.setToolTipText(""); final File file = new File(inputField.getText().trim()); if (file.exists()) { inputField.setToolTipText(file.getAbsolutePath()); inputField.setText(file.getName()); hideError(); return true; } else { final PopupFactory popupFactory = PopupFactory.getSharedInstance(); final Point locationOnScreen = inputField.getLocationOnScreen(); final JLabel message = new JLabel("Please specify an existing file!"); message.setBorder(new LineBorder(Color.RED, 2, true)); if (errorPopup != null) errorPopup.hide(); errorPopup = popupFactory.getPopup(inputField, message, locationOnScreen.x - 10, locationOnScreen.y - 30); errorPopup.show(); return false; } } }); final JButton browseButton = new JButton(BROWSE_BUTTON_TEXT); browseButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { final JFileChooser fileDialog = new JFileChooser( !"".equals(textField.getToolTipText()) ? textField.getToolTipText() : currentDirectory); if (!"".equals(textField.getToolTipText())) fileDialog.setSelectedFile(new File(textField.getToolTipText())); int dialogResult = fileDialog.showOpenDialog(dashboard); if (dialogResult == JFileChooser.APPROVE_OPTION) { final File selectedFile = fileDialog.getSelectedFile(); if (selectedFile != null) { currentDirectory = selectedFile.getAbsoluteFile().getParent(); textField.setText(selectedFile.getName()); textField.setToolTipText(selectedFile.getAbsolutePath()); } } } }); field.add(textField, BorderLayout.CENTER); field.add(browseButton, BorderLayout.EAST); } else if (parameterInfo instanceof MasonIntervalParameterInfo) { final MasonIntervalParameterInfo intervalInfo = (MasonIntervalParameterInfo) parameterInfo; field = new JPanel(new BorderLayout()); String oldValueStr = String.valueOf(parameterInfo.getValue()); if (oldField != null) { final JTextField oldTextField = (JTextField) oldField.getComponent(0); oldValueStr = oldTextField.getText(); } final JTextField textField = new JTextField(oldValueStr); PercentJSlider tempSlider = null; if (intervalInfo.isDoubleInterval()) tempSlider = new PercentJSlider(intervalInfo.getIntervalMin().doubleValue(), intervalInfo.getIntervalMax().doubleValue(), Double.parseDouble(oldValueStr)); else tempSlider = new PercentJSlider(intervalInfo.getIntervalMin().longValue(), intervalInfo.getIntervalMax().longValue(), Long.parseLong(oldValueStr)); final PercentJSlider slider = tempSlider; slider.setMajorTickSpacing(100); slider.setMinorTickSpacing(10); slider.setPaintTicks(true); slider.setPaintLabels(true); slider.addChangeListener(new ChangeListener() { public void stateChanged(final ChangeEvent _) { if (slider.hasFocus()) { final String value = intervalInfo.isDoubleInterval() ? String.valueOf(slider.getDoubleValue()) : String.valueOf(slider.getLongValue()); textField.setText(value); slider.setToolTipText(value); } } }); textField.setInputVerifier(new InputVerifier() { public boolean verify(JComponent input) { final JTextField inputField = (JTextField) input; try { hideError(); final String valueStr = inputField.getText().trim(); if (intervalInfo.isDoubleInterval()) { final double value = Double.parseDouble(valueStr); if (intervalInfo.isValidValue(valueStr)) { slider.setValue(value); return true; } else showError( "Please specify a value between " + intervalInfo.getIntervalMin() + " and " + intervalInfo.getIntervalMax() + ".", inputField); return false; } else { final long value = Long.parseLong(valueStr); if (intervalInfo.isValidValue(valueStr)) { slider.setValue(value); return true; } else { showError("Please specify an integer value between " + intervalInfo.getIntervalMin() + " and " + intervalInfo.getIntervalMax() + ".", inputField); return false; } } } catch (final NumberFormatException _) { final String message = "The specified value is not a" + (intervalInfo.isDoubleInterval() ? "" : "n integer") + " number."; showError(message, inputField); return false; } } }); textField.getDocument().addDocumentListener(new DocumentListener() { // private Popup errorPopup; public void removeUpdate(final DocumentEvent _) { textFieldChanged(); } public void insertUpdate(final DocumentEvent _) { textFieldChanged(); } public void changedUpdate(final DocumentEvent _) { textFieldChanged(); } private void textFieldChanged() { if (!textField.hasFocus()) { hideError(); return; } try { hideError(); final String valueStr = textField.getText().trim(); if (intervalInfo.isDoubleInterval()) { final double value = Double.parseDouble(valueStr); if (intervalInfo.isValidValue(valueStr)) slider.setValue(value); else showError("Please specify a value between " + intervalInfo.getIntervalMin() + " and " + intervalInfo.getIntervalMax() + ".", textField); } else { final long value = Long.parseLong(valueStr); if (intervalInfo.isValidValue(valueStr)) slider.setValue(value); else showError("Please specify an integer value between " + intervalInfo.getIntervalMin() + " and " + intervalInfo.getIntervalMax() + ".", textField); } } catch (final NumberFormatException _) { final String message = "The specified value is not a" + (intervalInfo.isDoubleInterval() ? "" : "n integer") + " number."; showError(message, textField); } } }); field.add(textField, BorderLayout.CENTER); field.add(slider, BorderLayout.SOUTH); } else { final Object value = oldField != null ? ((JTextField) oldField).getText() : parameterInfo.getValue(); field = new JTextField(value.toString()); ((JTextField) field).addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { wizard.clickDefaultButton(); } }); } final JLabel parameterLabel = new JLabel(record.fieldName); final String description = parameterInfo.getDescription(); if (description != null && !description.isEmpty()) { parameterLabel.addMouseListener(new MouseAdapter() { @Override public void mouseEntered(final MouseEvent e) { final DescriptionPopupFactory popupFactory = DescriptionPopupFactory.getInstance(); final Popup parameterDescriptionPopup = popupFactory.getPopup(parameterLabel, description, dashboard.getCssStyle()); parameterDescriptionPopup.show(); } }); } if (oldNode != null) userData.setSecond(field); else { final Pair<ParameterInfo, JComponent> pair = new Pair<ParameterInfo, JComponent>(parameterInfo, field); final DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(pair); parentNode.add(newNode); } if (field instanceof JCheckBox) { parameterLabel .setText("<html><div style=\"margin-bottom: 4pt; margin-top: 6pt; margin-left: 4pt\">" + parameterLabel.getText() + "</div></html>"); formBuilder.append(parameterLabel, field); // appendCheckBoxFieldToPresentation( // formBuilder, parameterLabel.getText(), (JCheckBox) field); } else { formBuilder.append(parameterLabel, field); final CellConstraints constraints = formBuilder.getLayout().getConstraints(parameterLabel); constraints.vAlign = CellConstraints.TOP; constraints.insets = new Insets(5, 0, 0, 0); formBuilder.getLayout().setConstraints(parameterLabel, constraints); } // prepare the parameterInfo for the param sweeps parameterInfo.setRuns(0); parameterInfo.setDefinitionType(ParameterInfo.CONST_DEF); parameterInfo.setValue(batchParameterInfo.getDefaultValue()); info.add(parameterInfo); } } appendVerticalSpaceToPresentation(formBuilder); final JPanel panel = formBuilder.getPanel(); singleRunParametersPanel.add(panel); if (singleRunParametersPanel.getComponentCount() > 1) { panel.setBorder( BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(0, 1, 0, 0, Color.GRAY), BorderFactory.createEmptyBorder(0, 5, 0, 5))); } else { panel.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 5)); } Style.apply(panel, dashboard.getCssStyle()); return info; }
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 ww w . j ava 2s. co 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(); } } }); }
From source file:edu.ku.brc.af.ui.forms.FormViewObj.java
/** * Creates the JButton that displays the current state of the forms validation * @param window/*from www. ja v a 2 s .c om*/ * @param validator * @return */ public static JButton createValidationIndicator(final Component comp, final FormValidator validator) { if (validator != null) { JButton validationInfoBtn = new JButton(IconManager.getIcon("ValidationValid")); validationInfoBtn.setOpaque(false); validationInfoBtn.setToolTipText(getResourceString("SHOW_VALIDATION_INFO_TT")); validationInfoBtn.setMargin(new Insets(1, 1, 1, 1)); validationInfoBtn.setBorder(BorderFactory.createEmptyBorder()); validationInfoBtn.setFocusable(false); validationInfoBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { showValidationInfo(comp instanceof Window ? (Window) comp : UIHelper.getWindow(comp), validator); } }); validator.setValidationBtn(validationInfoBtn); return validationInfoBtn; } // else return null; }
From source file:com.itemanalysis.jmetrik.gui.Jmetrik.java
private JToolBar createToolBar() { String urlString;/* w ww .j a va 2s. c om*/ URL url; final JToolBar tools = new JToolBar("jMetrik Tool Bar"); JButton button; urlString = "/org/tango-project/tango-icon-theme/16x16/actions/document-new.png"; url = this.getClass().getResource(urlString); ImageIcon iconNew = new ImageIcon(url, "New"); button = new JButton(new NewTextFileAction("", iconNew)); tools.add(button); urlString = "/org/tango-project/tango-icon-theme/16x16/actions/document-open.png"; url = this.getClass().getResource(urlString); ImageIcon iconOpen = new ImageIcon(url, "Open"); button = new JButton(new OpenFileAction("", iconOpen)); tools.add(button); urlString = "/org/tango-project/tango-icon-theme/16x16/actions/document-save.png"; url = this.getClass().getResource(urlString); ImageIcon iconSave = new ImageIcon(url, "Save As"); button = new JButton(new SaveAction("", iconSave)); tools.add(button); urlString = "/org/tango-project/tango-icon-theme/16x16/actions/document-save-as.png"; url = this.getClass().getResource(urlString); ImageIcon iconSaveAs = new ImageIcon(url, "Save As"); button = new JButton(new SaveAsAction("", iconSaveAs)); tools.add(button); tools.addSeparator(); urlString = "/org/tango-project/tango-icon-theme/16x16/actions/document-print.png"; url = this.getClass().getResource(urlString); ImageIcon iconPrint = new ImageIcon(url, "Print"); button = new JButton(new PrintAction("", iconPrint)); tools.add(button); tools.addSeparator(); // urlString = "/org/tango-project/tango-icon-theme/16x16/actions/edit-cut.png"; // url = this.getClass().getResource( urlString ); // ImageIcon iconCut = new ImageIcon(url, "Cut"); // button = new JButton(new DefaultEditorKit.CutAction()); // button.setText(""); // button.setIcon(iconCut); // tools.addArgument(button); // // urlString = "/org/tango-project/tango-icon-theme/16x16/actions/edit-copy.png"; // url = this.getClass().getResource( urlString ); // ImageIcon iconCopy = new ImageIcon(url, "Copy"); // button = new JButton(new DefaultEditorKit.CopyAction()); // button.setText(""); // button.setIcon(iconCopy); // tools.addArgument(button); // // urlString = "/org/tango-project/tango-icon-theme/16x16/actions/edit-paste.png"; // url = this.getClass().getResource( urlString ); // ImageIcon iconPaste = new ImageIcon(url, "Paste"); // button = new JButton(new DefaultEditorKit.PasteAction()); // button.setIcon(iconPaste); // button.setText(""); // tools.addArgument(button); // // tools.addSeparator(); urlString = "/org/tango-project/tango-icon-theme/16x16/actions/edit-undo.png"; url = this.getClass().getResource(urlString); ImageIcon iconUndo = new ImageIcon(url, "Undo"); button = new JButton(new UndoAction("", iconUndo)); tools.add(button); urlString = "/org/tango-project/tango-icon-theme/16x16/actions/edit-redo.png"; url = this.getClass().getResource(urlString); ImageIcon iconRedo = new ImageIcon(url, "Redo"); button = new JButton(new RedoAction("", iconRedo)); tools.add(button); tools.addSeparator(); urlString = "/org/tango-project/tango-icon-theme/16x16/apps/accessories-text-editor.png"; url = this.getClass().getResource(urlString); ImageIcon iconDesc = new ImageIcon(url, "Descriptions"); button = new JButton("", iconDesc); button.setToolTipText("View table descriptions"); button.addActionListener(new TableDescriptionActionListener()); tools.add(button); tools.addSeparator(); urlString = "/org/tango-project/tango-icon-theme/16x16/actions/media-playback-start.png"; url = this.getClass().getResource(urlString); ImageIcon iconStart = new ImageIcon(url, "Run Analysis from Syntax"); button = new JButton(iconStart); button.setToolTipText("Run commands"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JScrollPane pain = (JScrollPane) tabbedPane.getSelectedComponent(); JViewport vp = pain.getViewport(); Component c = vp.getComponent(0); if (c instanceof JmetrikTextFile) { JmetrikTab tempTab = (JmetrikTab) tabbedPane.getTabComponentAt(tabbedPane.getSelectedIndex()); JmetrikTextFile textFile = (JmetrikTextFile) c; workspace.runFromSyntax(textFile.getText()); } } }); tools.add(button); urlString = "/org/tango-project/tango-icon-theme/16x16/actions/media-playback-stop.png"; url = this.getClass().getResource(urlString); ImageIcon iconStopThreads = new ImageIcon(url, "Stop Analysis"); // button = new JButton(new StopAllThreadsAction("",iconStopThreads)); button = new JButton(iconStopThreads); tools.add(button); tools.addSeparator(); urlString = "/org/tango-project/tango-icon-theme/16x16/apps/utilities-system-monitor.png"; url = this.getClass().getResource(urlString); ImageIcon iconStartMemoryMonitor = new ImageIcon(url, "Start Memory Monitor"); button = new JButton(iconStartMemoryMonitor); button.setToolTipText("View memory allocation"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { double m = (double) Runtime.getRuntime().maxMemory(); double f = (double) Runtime.getRuntime().freeMemory(); double t = (double) Runtime.getRuntime().totalMemory(); f = f / 1048576.0; t = t / 1048576.0; m = m / 1048576.0; double amem = Precision.round(f / t * 100.0, 2); JOptionPane.showMessageDialog(Jmetrik.this, "Total memory available: " + Precision.round(m, 2) + " MB\n" + "Current allocation: " + Precision.round(t, 2) + " MB\n" + "Current amount free: " + Precision.round(f, 2) + " MB (" + amem + "%)", "JVM Memory Available", JOptionPane.INFORMATION_MESSAGE); } }); tools.add(button); urlString = "/org/tango-project/tango-icon-theme/16x16/status/folder-visiting.png"; url = this.getClass().getResource(urlString); ImageIcon iconCloseAllTabs = new ImageIcon(url, "Close All"); button = new JButton(new CloseAllTabsAction("", iconCloseAllTabs)); tools.add(button); urlString = "/org/tango-project/tango-icon-theme/16x16/actions/view-refresh.png"; url = this.getClass().getResource(urlString); ImageIcon iconRefreshData = new ImageIcon(url, "Refresh Data View"); refreshButton = new JButton("", iconRefreshData); refreshButton.setEnabled(false); tools.add(refreshButton); refreshButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { workspace.reloadTable(workspace.getCurrentDataTable()); refreshButton.setEnabled(false); refreshButton.setText(""); } }); workspace.setRefreshButton(refreshButton); return tools; }
From source file:edu.ku.brc.af.ui.forms.FormViewObj.java
/** * Adds the ResultSetController to the panel. * @param addSearch indicates it should add a search btn *//*from w ww. j a v a 2s . c o m*/ protected void addRSController(final boolean addSearch) { // If the Control panel doesn't exist, then add it if (rsController == null && controlPanel != null) { boolean canAdd = true; boolean canDel = true; if (AppContextMgr.isSecurityOn()) { if (perm == null) { if (tableInfo != null) { perm = tableInfo.getPermissions(); } else { perm = MultiView.getPremissionFromView(view, MultiView.getClassNameFromParentMV(dataClass, mvParent, cellName)); } //SecurityMgr.dumpPermissions(mvParentArg.getViewName(), perm.getOptions()); canAdd = perm.canAdd(); canDel = perm.canDelete(); } } boolean mvHasSeparator = mvParent.getSeparator() != null; boolean inEditMode = altView.getMode() == AltViewIFace.CreationMode.EDIT; rsController = new ResultSetController(formValidator, inEditMode && !addSearch && canAdd, // Add New inEditMode && canDel, // Add Delete inEditMode && addSearch && canAdd, // Add Search view.getObjTitle(), // Object Title 0, // current length !mvHasSeparator); // don't layout the btns rsController.getPanel().setBackground(bgColor); if (mvParent.isTopLevel()) { rsController.setupGotoListener(); } rsController.addListener(this); controlPanel.addController(rsController.getPanel()); controlPanel.setRecordSetController(rsController); newRecBtn = rsController.getNewRecBtn(); delRecBtn = rsController.getDelRecBtn(); if (addSearch) { if (delRecBtn != null) { String removeTTStr = ResultSetController.createTooltip("RemoveRecordTT", view.getObjTitle()); delRecBtn.setIcon(IconManager.getIcon("Eraser16", IconManager.IconSize.Std16)); delRecBtn.setToolTipText(removeTTStr); } JButton searchButton = rsController.getSearchRecBtn(); if (searchButton != null) { searchButton.setIcon(IconManager.getIcon("SearchAdd", IconManager.IconSize.Std16)); String saTTStr = ResultSetController.createTooltip("SearchAddRecordTT", view.getObjTitle()); searchButton.setToolTipText(saTTStr); } } if (formValidator != null && newRecBtn != null) { formValidator.addEnableItem(newRecBtn, FormValidator.EnableType.ValidItems); } setAddDelListeners(newRecBtn, delRecBtn); if (mvHasSeparator) { addControllerBtnsToSep(); } } }