package jplagAdminTool; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Locale; import java.util.TimeZone; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JProgressBar; import javax.swing.JRootPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.KeyStroke; import jplagWsClient.jplagClient.FinishRequestData; import jplagWsClient.jplagClient.RequestData; public class RequestDialog extends JDialog { private static final long serialVersionUID = 1601751795315331307L; private javax.swing.JPanel jContentPane = null; private JPanel jPanel = null; private JLabel jLabel = null; private JTextField jRealNameTextField = null; private JLabel jLabel1 = null; private JTextField jUsernameTextField = null; private JLabel jLabel2 = null; private JTextField jPasswordTextField = null; private JLabel jLabel3 = null; private JTextField jEmailTextField = null; private JLabel jLabel4 = null; private JTextField jEmailSecondTextField = null; private JLabel jLabel5 = null; private JTextField jHomepageTextField = null; private JLabel jLabel6 = null; private JLabel jLabel7 = null; private JPanel jPanel1 = null; private JButton jAcceptButton = null; private JButton jDeclineButton = null; private JButton jPreviousButton = null; private JButton jNextButton = null; private JButton jCloseButton = null; private JPanel jPanel2 = null; private JLabel jRequestNumLabel = null; private JPanel jPanel3 = null; private RequestData[] reqdatas; private String[] oldUsernames; private String[] expireStrs; private String[] notesStrs; private AdminTool adminTool; private int reqind=0; private JTextField jExpireTextField = null; private JLabel jStateLabel = null; private enum RequestState { open, accepted, declined, processing } private RequestState[] states=null; private JTextArea jReasonTextArea = null; private JTextArea jNotesTextArea = null; private JScrollPane jScrollPane = null; private JScrollPane jScrollPane1 = null; private JProgressBar jProgressBar = null; private JPanel jPanel4 = null; private JLabel jLabel9 = null; private JLabel jLabel10 = null; private JLabel jLabel8 = null; private JTextField jRequestTimeField = null; private JScrollPane jNotesServerScrollPane = null; private JTextArea jNotesServerTextArea = null; private JButton jShowHomepageButton = null; private JButton jShowMailProviderButton = null; private JLabel jUserStateLabel = null; private JComboBox<String> jStateComboBox = null; /** * This is the default constructor */ public RequestDialog(RequestData[] rds, AdminTool at) { super(at); reqdatas = rds; states = new RequestState[rds.length]; for(int i=0; i<states.length; i++) states[i] = RequestState.open; GregorianCalendar c = new GregorianCalendar( TimeZone.getTimeZone("GMT")); c.add(Calendar.YEAR,1); String calstr = formatCalendar(c); oldUsernames = new String[rds.length]; notesStrs = new String[rds.length]; expireStrs = new String[rds.length]; for(int i=0; i<rds.length; i++) { oldUsernames[i] = reqdatas[i].getUsername(); notesStrs[i] = ""; expireStrs[i] = calstr; } adminTool = at; initialize(); setData(); } private void doClose() { setVisible(false); dispose(); adminTool.updateRequestsWaiting(); } protected JRootPane createRootPane() { KeyStroke stroke=KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); JRootPane rootPane=new JRootPane(); rootPane.registerKeyboardAction(new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { doClose(); } }, stroke, JComponent.WHEN_IN_FOCUSED_WINDOW); return rootPane; } /** * This method initializes this * * @return void */ private void initialize() { this.setSize(601, 568); this.setTitle("Request dialog"); this.setResizable(false); this.setContentPane(getJContentPane()); } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private javax.swing.JPanel getJContentPane() { if(jContentPane == null) { jContentPane = new javax.swing.JPanel(); jContentPane.setLayout(new java.awt.BorderLayout()); jContentPane.add(getJPanel2(), java.awt.BorderLayout.NORTH); jContentPane.add(getJPanel3(), java.awt.BorderLayout.CENTER); jContentPane.add(getJPanel1(), java.awt.BorderLayout.SOUTH); } return jContentPane; } /** * This method initializes jPanel2 * * @return javax.swing.JPanel */ private JPanel getJPanel2() { if (jPanel2 == null) { jRequestNumLabel = new JLabel(); jRequestNumLabel.setText("Request 1/999"); jStateLabel = new JLabel(); jStateLabel.setText("State of request: blub"); jPanel2 = new JPanel(); FlowLayout flowLayout19 = new FlowLayout(); flowLayout19.setHgap(50); jPanel2.setLayout(flowLayout19); jPanel2.add(jRequestNumLabel, null); jPanel2.add(jStateLabel, null); jPanel2.add(getJProgressBar(), null); } return jPanel2; } /** * This method initializes jProgressBar * * @return javax.swing.JProgressBar */ private JProgressBar getJProgressBar() { if (jProgressBar == null) { jProgressBar = new JProgressBar(); jProgressBar.setPreferredSize(new java.awt.Dimension(50,14)); } return jProgressBar; } /** * This method initializes jPanel3 * * @return javax.swing.JPanel */ private JPanel getJPanel3() { if (jPanel3 == null) { jPanel3 = new JPanel(); jPanel3.setLayout(new BorderLayout()); jPanel3.setBorder(javax.swing.BorderFactory.createEmptyBorder(5,5,5,5)); jPanel3.add(getJPanel(), java.awt.BorderLayout.NORTH); jPanel3.add(getJPanel4(), java.awt.BorderLayout.SOUTH); } return jPanel3; } /** * This method initializes jPanel * * @return javax.swing.JPanel */ private JPanel getJPanel() { if (jPanel == null) { GridBagConstraints gridBagConstraints19 = new GridBagConstraints(); gridBagConstraints19.gridx = 3; gridBagConstraints19.gridy = 4; GridBagConstraints gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 6; GridBagConstraints gridBagConstraints24 = new GridBagConstraints(); gridBagConstraints24.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints24.gridx = 2; gridBagConstraints24.gridy = 0; gridBagConstraints24.gridwidth = 2; gridBagConstraints24.weightx = 1.0; GridBagConstraints gridBagConstraints17 = new GridBagConstraints(); gridBagConstraints17.gridx = 0; gridBagConstraints17.gridy = 0; gridBagConstraints17.anchor = java.awt.GridBagConstraints.WEST; jLabel8 = new JLabel(); jLabel8.setText("Request time:"); GridBagConstraints gridBagConstraints23 = new GridBagConstraints(); gridBagConstraints23.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints23.gridx = 2; gridBagConstraints23.gridy = 8; gridBagConstraints23.weightx = 1.0; gridBagConstraints23.gridwidth = 2; gridBagConstraints23.weighty = 1.0; GridBagConstraints gridBagConstraints22 = new GridBagConstraints(); gridBagConstraints22.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints22.gridx = 2; gridBagConstraints22.gridy = 7; gridBagConstraints22.weightx = 1.0; gridBagConstraints22.gridwidth = 2; gridBagConstraints22.weighty = 1.0; GridBagConstraints gridBagConstraints21 = new GridBagConstraints(); gridBagConstraints21.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints21.gridx = 2; gridBagConstraints21.gridy = 7; gridBagConstraints21.weightx = 1.0; gridBagConstraints21.weighty = 1.0; GridBagConstraints gridBagConstraints20 = new GridBagConstraints(); gridBagConstraints20.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints20.gridx = 2; gridBagConstraints20.gridy = 6; gridBagConstraints20.weightx = 1.0; gridBagConstraints20.weighty = 1.0; GridBagConstraints gridBagConstraints15 = new GridBagConstraints(); gridBagConstraints15.gridx = 0; gridBagConstraints15.gridy = 8; gridBagConstraints15.anchor = java.awt.GridBagConstraints.NORTHWEST; jLabel7 = new JLabel(); jLabel7.setText("Additional notes:"); GridBagConstraints gridBagConstraints13 = new GridBagConstraints(); gridBagConstraints13.gridx = 0; gridBagConstraints13.gridy = 7; gridBagConstraints13.anchor = java.awt.GridBagConstraints.NORTHWEST; jLabel6 = new JLabel(); jLabel6.setText("Reason:"); GridBagConstraints gridBagConstraints12 = new GridBagConstraints(); gridBagConstraints12.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints12.gridx = 2; gridBagConstraints12.gridy = 6; gridBagConstraints12.weightx = 1.0; GridBagConstraints gridBagConstraints11 = new GridBagConstraints(); gridBagConstraints11.gridx = 0; gridBagConstraints11.gridy = 6; gridBagConstraints11.anchor = java.awt.GridBagConstraints.WEST; jLabel5 = new JLabel(); jLabel5.setText("Homepage:"); GridBagConstraints gridBagConstraints10 = new GridBagConstraints(); gridBagConstraints10.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints10.gridx = 2; gridBagConstraints10.gridy = 5; gridBagConstraints10.gridwidth = 2; gridBagConstraints10.weightx = 1.0; GridBagConstraints gridBagConstraints9 = new GridBagConstraints(); gridBagConstraints9.gridx = 0; gridBagConstraints9.gridy = 5; gridBagConstraints9.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints9.insets = new java.awt.Insets(0,0,0,5); gridBagConstraints9.ipadx = 71; jLabel4 = new JLabel(); jLabel4.setText("Secondary email:"); GridBagConstraints gridBagConstraints8 = new GridBagConstraints(); gridBagConstraints8.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints8.gridx = 2; gridBagConstraints8.gridy = 4; gridBagConstraints8.gridwidth = 1; gridBagConstraints8.weightx = 1.0; GridBagConstraints gridBagConstraints7 = new GridBagConstraints(); gridBagConstraints7.gridx = 0; gridBagConstraints7.gridy = 4; gridBagConstraints7.anchor = java.awt.GridBagConstraints.WEST; jLabel3 = new JLabel(); jLabel3.setText("Primary email:"); GridBagConstraints gridBagConstraints6 = new GridBagConstraints(); gridBagConstraints6.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints6.gridx = 2; gridBagConstraints6.gridy = 3; gridBagConstraints6.gridwidth = 2; gridBagConstraints6.weightx = 1.0; GridBagConstraints gridBagConstraints5 = new GridBagConstraints(); gridBagConstraints5.gridx = 0; gridBagConstraints5.gridy = 3; gridBagConstraints5.anchor = java.awt.GridBagConstraints.WEST; jLabel2 = new JLabel(); jLabel2.setText("Password:"); GridBagConstraints gridBagConstraints4 = new GridBagConstraints(); gridBagConstraints4.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints4.gridx = 2; gridBagConstraints4.gridy = 2; gridBagConstraints4.gridwidth = 2; gridBagConstraints4.weightx = 1.0; GridBagConstraints gridBagConstraints3 = new GridBagConstraints(); gridBagConstraints3.gridx = 0; gridBagConstraints3.gridy = 2; gridBagConstraints3.anchor = java.awt.GridBagConstraints.WEST; jLabel1 = new JLabel(); jLabel1.setText("Username:"); GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints2.gridx = 2; gridBagConstraints2.gridy = 1; gridBagConstraints2.weightx = 1.0; gridBagConstraints2.gridwidth = 2; GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); gridBagConstraints1.gridx = 0; gridBagConstraints1.gridy = 1; gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST; jLabel = new JLabel(); jLabel.setText("Real name:"); jPanel = new JPanel(); jPanel.setLayout(new GridBagLayout()); jPanel.setBorder(javax.swing.BorderFactory.createCompoundBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED), javax.swing.BorderFactory.createEmptyBorder(5,5,5,5))); jPanel.add(getJRequestTimeField(), gridBagConstraints24); jPanel.add(jLabel8, gridBagConstraints17); jPanel.add(jLabel7, gridBagConstraints15); jPanel.add(jLabel6, gridBagConstraints13); jPanel.add(getJHomepageTextField(), gridBagConstraints12); jPanel.add(jLabel5, gridBagConstraints11); jPanel.add(getJEmailSecondTextField(), gridBagConstraints10); jPanel.add(jLabel4, gridBagConstraints9); jPanel.add(getJEmailTextField(), gridBagConstraints8); jPanel.add(jLabel3, gridBagConstraints7); jPanel.add(getJPasswordTextField(), gridBagConstraints6); jPanel.add(jLabel2, gridBagConstraints5); jPanel.add(getJUsernameTextField(), gridBagConstraints4); jPanel.add(jLabel1, gridBagConstraints3); jPanel.add(getJRealNameTextField(), gridBagConstraints2); jPanel.add(jLabel, gridBagConstraints1); jPanel.add(getJScrollPane(), gridBagConstraints22); jPanel.add(getJScrollPane1(), gridBagConstraints23); jPanel.add(getJShowHomepageButton(), gridBagConstraints); jPanel.add(getJShowMailProviderButton(), gridBagConstraints19); } return jPanel; } /** * This method initializes jRequestTimeField * * @return javax.swing.JTextField */ private JTextField getJRequestTimeField() { if (jRequestTimeField == null) { jRequestTimeField = new JTextField(); jRequestTimeField.setEditable(false); } return jRequestTimeField; } /** * This method initializes jRealNameTextField * * @return javax.swing.JTextField */ private JTextField getJRealNameTextField() { if (jRealNameTextField == null) { jRealNameTextField = new JTextField(); } return jRealNameTextField; } /** * This method initializes jUsernameTextField * * @return javax.swing.JTextField */ private JTextField getJUsernameTextField() { if (jUsernameTextField == null) { jUsernameTextField = new JTextField(); } return jUsernameTextField; } /** * This method initializes jPasswordTextField * * @return javax.swing.JTextField */ private JTextField getJPasswordTextField() { if (jPasswordTextField == null) { jPasswordTextField = new JTextField(); } return jPasswordTextField; } /** * This method initializes jEmailTextField * * @return javax.swing.JTextField */ private JTextField getJEmailTextField() { if (jEmailTextField == null) { jEmailTextField = new JTextField(); } return jEmailTextField; } /** * This method initializes jEmailSecondTextField * * @return javax.swing.JTextField */ private JTextField getJEmailSecondTextField() { if (jEmailSecondTextField == null) { jEmailSecondTextField = new JTextField(); } return jEmailSecondTextField; } /** * This method initializes jHomepageTextField * * @return javax.swing.JTextField */ private JTextField getJHomepageTextField() { if (jHomepageTextField == null) { jHomepageTextField = new JTextField(); } return jHomepageTextField; } /** * This method initializes jScrollPane * * @return javax.swing.JScrollPane */ private JScrollPane getJScrollPane() { if (jScrollPane == null) { jScrollPane = new JScrollPane(); jScrollPane.setViewportView(getJReasonTextArea()); } return jScrollPane; } /** * This method initializes jReasonTextArea * * @return javax.swing.JTextArea */ private JTextArea getJReasonTextArea() { if (jReasonTextArea == null) { jReasonTextArea = new JTextArea(); jReasonTextArea.setRows(7); jReasonTextArea.setLineWrap(true); jReasonTextArea.setWrapStyleWord(true); jReasonTextArea.setEditable(false); jReasonTextArea.setBackground(javax.swing.UIManager .getColor("Button.background")); } return jReasonTextArea; } /** * This method initializes jScrollPane1 * * @return javax.swing.JScrollPane */ private JScrollPane getJScrollPane1() { if (jScrollPane1 == null) { jScrollPane1 = new JScrollPane(); jScrollPane1.setViewportView(getJNotesTextArea()); } return jScrollPane1; } /** * This method initializes jNotesTextArea * * @return javax.swing.JTextArea */ private JTextArea getJNotesTextArea() { if (jNotesTextArea == null) { jNotesTextArea = new JTextArea(); jNotesTextArea.setRows(6); jNotesTextArea.setLineWrap(true); jNotesTextArea.setWrapStyleWord(true); jNotesTextArea.setEditable(false); jNotesTextArea.setBackground(javax.swing.UIManager .getColor("Button.background")); } return jNotesTextArea; } /** * This method initializes jPanel4 * * @return javax.swing.JPanel */ private JPanel getJPanel4() { if (jPanel4 == null) { GridBagConstraints gridBagConstraints26 = new GridBagConstraints(); gridBagConstraints26.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints26.gridy = 2; gridBagConstraints26.weightx = 1.0; gridBagConstraints26.gridx = 1; GridBagConstraints gridBagConstraints25 = new GridBagConstraints(); gridBagConstraints25.gridx = 0; gridBagConstraints25.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints25.gridy = 2; jUserStateLabel = new JLabel(); jUserStateLabel.setText("User state:"); GridBagConstraints gridBagConstraints18 = new GridBagConstraints(); gridBagConstraints18.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints18.gridx = 1; gridBagConstraints18.gridy = 0; gridBagConstraints18.weightx = 1.0; gridBagConstraints18.weighty = 1.0; GridBagConstraints gridBagConstraints16 = new GridBagConstraints(); gridBagConstraints16.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints16.gridx = 0; gridBagConstraints16.gridy = 0; GridBagConstraints gridBagConstraints14 = new GridBagConstraints(); gridBagConstraints14.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints14.gridx = 1; gridBagConstraints14.gridy = 1; gridBagConstraints14.weightx = 1.0; GridBagConstraints gridBagConstraints131 = new GridBagConstraints(); gridBagConstraints131.gridx = 0; gridBagConstraints131.gridy = 1; gridBagConstraints131.insets = new java.awt.Insets(0,0,0,5); jLabel10 = new JLabel(); jLabel10.setText("Expiration date (DD.MM.YYYY):"); jLabel9 = new JLabel(); jLabel9.setText("Notes:"); jPanel4 = new JPanel(); jPanel4.setLayout(new GridBagLayout()); jPanel4.setBorder(javax.swing.BorderFactory.createCompoundBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED), javax.swing.BorderFactory.createEmptyBorder(5,5,5,5))); jPanel4.add(getJNotesServerScrollPane(), gridBagConstraints18); jPanel4.add(getJExpireTextField(), gridBagConstraints14); jPanel4.add(jLabel10, gridBagConstraints131); jPanel4.add(jLabel9, gridBagConstraints16); jPanel4.add(jUserStateLabel, gridBagConstraints25); jPanel4.add(getJStateComboBox(), gridBagConstraints26); } return jPanel4; } /** * This method initializes jExpireTextField * * @return javax.swing.JTextField */ private JTextField getJExpireTextField() { if (jExpireTextField == null) { jExpireTextField = new JTextField(); } return jExpireTextField; } /** * This method initializes jPanel1 * * @return javax.swing.JPanel */ private JPanel getJPanel1() { if (jPanel1 == null) { jPanel1 = new JPanel(); jPanel1.add(getJAcceptButton(), null); jPanel1.add(getJDeclineButton(), null); jPanel1.add(getJPreviousButton(), null); jPanel1.add(getJNextButton(), null); jPanel1.add(getJCloseButton(), null); } return jPanel1; } public static Calendar parseCalendar(String string) throws ParseException { if(string.length()==0) return null; Calendar cal=new GregorianCalendar(TimeZone.getTimeZone("GMT")); SimpleDateFormat sdf2=new SimpleDateFormat("dd.MM.yy"); SimpleDateFormat sdf4=new SimpleDateFormat("dd.MM.yyyy"); sdf2.setLenient(false); sdf4.setLenient(false); Date date; try { date=sdf2.parse(string); } catch(ParseException e) { date=sdf4.parse(string); } cal.setTime(date); return cal; } public static String formatCalendar(Calendar cal) { if(cal==null) return "No date"; DateFormat df=DateFormat.getDateInstance(DateFormat.MEDIUM,Locale.GERMAN); return df.format(cal.getTime()); } /** * This method initializes jAcceptButton * * @return javax.swing.JButton */ private JButton getJAcceptButton() { if (jAcceptButton == null) { jAcceptButton = new JButton(); jAcceptButton.setText("Accept request..."); jAcceptButton.addActionListener(new java.awt.event.ActionListener() { private String mailString; private String mailSubjectString; private Calendar expires; private int userstate; public void actionPerformed(java.awt.event.ActionEvent e) { final SwingWorker worker = new SwingWorker() { private FinishRequestData finishData; private int curReqInd; public Object construct() { try { curReqInd=reqind; RequestData rd=reqdatas[curReqInd]; finishData=new FinishRequestData( oldUsernames[curReqInd], rd.getUsername(), rd.getPassword(), expires, rd.getRealName(), rd.getEmail(), rd.getEmailSecond(), rd.getHomepage(), rd.getReason(), strToN(notesStrs[curReqInd]), userstate, mailSubjectString, mailString); adminTool.getJPlagStub().finishAccountRequest( finishData); return new Object(); } catch(Exception ex) { adminTool.CheckException(ex,RequestDialog.this); } return null; } public void finished() { if(get()!=null) { states[curReqInd] = RequestState.accepted; Calendar cal = Calendar.getInstance( TimeZone.getTimeZone("GMT")); BackedUserData data = new BackedUserData( finishData.getUsername(), finishData.getPassword(), cal,adminTool.getUsername(), finishData.getExpires(),null,0, finishData.getRealName(), finishData.getEmail(), finishData.getEmailSecond(), finishData.getHomepage(), finishData.getReason(), finishData.getNotes(), userstate); adminTool.getUserTableModel().addNewUser(data); if(reqind<reqdatas.length-1) { reqind++; setData(); } else updateState(); } else { states[curReqInd] = RequestState.open; updateState(); } } }; // check and set expires try { expires=parseCalendar(getJExpireTextField().getText()); if(expires!=null) { Calendar cal=Calendar.getInstance( TimeZone.getTimeZone("GMT")); if(cal.after(expires)) { JOptionPane.showMessageDialog( RequestDialog.this, "Please check the expire date field!", "Expire date is already expired!", JOptionPane.ERROR_MESSAGE); return; } } } catch(ParseException ex) { JOptionPane.showMessageDialog( RequestDialog.this, "Please check the expire date field!", "Illegal expire date!", JOptionPane.ERROR_MESSAGE); return; } RequestData rd = new RequestData(null, getJUsernameTextField().getText(), getJPasswordTextField().getText(), getJRealNameTextField().getText(), getJEmailTextField().getText(), strToN(getJEmailSecondTextField().getText()), strToN(getJHomepageTextField().getText()), getJReasonTextArea().getText(), strToN(getJNotesServerTextArea().getText())); // Let user choose the message to be sent to the user MailDialog md = new MailDialog(MailDialog.MAIL_ACCEPTED, "Choose mail to be sent to the accepted user...", rd, RequestDialog.this, adminTool); md.setLocationRelativeTo(RequestDialog.this); md.setVisible(true); if(!md.isCancelled()) { mailString = md.getMailString(); mailSubjectString = md.getMailSubjectString(); states[reqind] = RequestState.processing; userstate = BackedUserData.getStateInt( (String) jStateComboBox.getSelectedItem()); updateState(); updateChanges(); worker.start(); } } }); } return jAcceptButton; } /** * This method initializes jDeclineButton * * @return javax.swing.JButton */ private JButton getJDeclineButton() { if (jDeclineButton == null) { jDeclineButton = new JButton(); jDeclineButton.setText("Decline request..."); jDeclineButton.addActionListener(new java.awt.event.ActionListener() { private String mailString; private String mailSubjectString; public void actionPerformed(java.awt.event.ActionEvent e) { final SwingWorker worker = new SwingWorker() { private int curReqInd; public Object construct() { try { curReqInd=reqind; RequestData rd=reqdatas[curReqInd]; FinishRequestData fd=new FinishRequestData( oldUsernames[curReqInd], rd.getUsername(), null, null, rd.getRealName(), rd.getEmail(), rd.getEmailSecond(), rd.getHomepage(), rd.getReason(), strToN(notesStrs[curReqInd]), null, mailSubjectString, mailString); adminTool.getJPlagStub().finishAccountRequest(fd); return new Object(); } catch(Exception ex) { adminTool.CheckException(ex,RequestDialog.this); } return null; } public void finished() { if(get()!=null) { states[curReqInd] = RequestState.declined; if(reqind<reqdatas.length-1) { reqind++; setData(); } else updateState(); } else getJProgressBar().setIndeterminate(false); } }; RequestData rd = new RequestData(null, getJUsernameTextField().getText(), getJPasswordTextField().getText(), getJRealNameTextField().getText(), getJEmailTextField().getText(), strToN(getJEmailSecondTextField().getText()), strToN(getJHomepageTextField().getText()), getJReasonTextArea().getText(), strToN(getJNotesServerTextArea().getText())); MailDialog md = new MailDialog(MailDialog.MAIL_DECLINED, "Choose mail to be sent to the declined user...", rd, RequestDialog.this, adminTool); md.setLocationRelativeTo(RequestDialog.this); md.setVisible(true); if(!md.isCancelled()) { mailString = md.getMailString(); mailSubjectString = md.getMailSubjectString(); states[reqind] = RequestState.processing; updateState(); updateChanges(); worker.start(); } } }); } return jDeclineButton; } /** * "Nillable to string" * @return "" if str==null, str otherwise */ private String nToStr(String str) { if(str==null) return ""; else return str; } /** * "String to nillable" * @return null if str=="", str otherwise */ private String strToN(String str) { if(str.length()==0) return null; else return str; } private void updateState() { String stateText; switch(states[reqind]) { case open: stateText = "open"; break; case accepted: stateText = "accepted"; break; case declined: stateText = "declined"; break; case processing: stateText = "processing"; break; default: stateText = "buggy *cough*"; break; } switch(states[reqind]) { case open: getJProgressBar().setValue(0); getJProgressBar().setIndeterminate(false); break; case accepted: case declined: getJProgressBar().setValue(100); getJProgressBar().setIndeterminate(false); break; case processing: getJProgressBar().setIndeterminate(true); break; } jStateLabel.setText("State of request: " + stateText); getJAcceptButton().setEnabled(states[reqind]==RequestState.open); getJDeclineButton().setEnabled(states[reqind]==RequestState.open); } private void setData() { RequestData rd = reqdatas[reqind]; getJRequestTimeField().setText(rd.getValidateTime()); getJRealNameTextField().setText(rd.getRealName()); getJUsernameTextField().setText(rd.getUsername()); getJPasswordTextField().setText(rd.getPassword()); getJEmailTextField().setText(rd.getEmail()); getJEmailSecondTextField().setText(nToStr(rd.getEmailSecond())); getJHomepageTextField().setText(nToStr(rd.getHomepage())); getJReasonTextArea().setText(rd.getReason()); getJReasonTextArea().setCaretPosition(0); getJNotesTextArea().setText(nToStr(rd.getNotes())); getJNotesTextArea().setCaretPosition(0); getJNotesServerTextArea().setText(notesStrs[reqind]); getJNotesServerTextArea().setCaretPosition(0); getJExpireTextField().setText(expireStrs[reqind]); jRequestNumLabel.setText("Request " + (reqind+1) + "/" + reqdatas.length); updateState(); getJPreviousButton().setEnabled(reqind!=0); getJNextButton().setEnabled(reqind<reqdatas.length-1); } private void updateChanges() { RequestData rd=reqdatas[reqind]; rd.setRealName(getJRealNameTextField().getText()); rd.setUsername(getJUsernameTextField().getText()); rd.setPassword(getJPasswordTextField().getText()); rd.setEmail(getJEmailTextField().getText()); rd.setEmailSecond(strToN(getJEmailSecondTextField().getText())); rd.setHomepage(strToN(getJHomepageTextField().getText())); notesStrs[reqind]=getJNotesServerTextArea().getText(); expireStrs[reqind]=getJExpireTextField().getText(); } /** * This method initializes jPreviousButton * * @return javax.swing.JButton */ private JButton getJPreviousButton() { if (jPreviousButton == null) { jPreviousButton = new JButton(); jPreviousButton.setText("Show previous"); jPreviousButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { if(reqind>0) { updateChanges(); reqind--; setData(); } } }); } return jPreviousButton; } /** * This method initializes jNextButton * * @return javax.swing.JButton */ private JButton getJNextButton() { if (jNextButton == null) { jNextButton = new JButton(); jNextButton.setText("Show next"); jNextButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { if(reqind<reqdatas.length-1) { updateChanges(); reqind++; setData(); } } }); } return jNextButton; } /** * This method initializes jCloseButton * * @return javax.swing.JButton */ private JButton getJCloseButton() { if (jCloseButton == null) { jCloseButton = new JButton(); jCloseButton.setText("Close"); jCloseButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { doClose(); } }); } return jCloseButton; } /** * This method initializes jNotesServerScrollPane * * @return javax.swing.JScrollPane */ private JScrollPane getJNotesServerScrollPane() { if (jNotesServerScrollPane == null) { jNotesServerScrollPane = new JScrollPane(); jNotesServerScrollPane.setViewportView(getJNotesServerTextArea()); } return jNotesServerScrollPane; } /** * This method initializes jNotesServerTextArea * * @return javax.swing.JTextArea */ private JTextArea getJNotesServerTextArea() { if (jNotesServerTextArea == null) { jNotesServerTextArea = new JTextArea(); jNotesServerTextArea.setRows(3); jNotesServerTextArea.setLineWrap(true); jNotesServerTextArea.setWrapStyleWord(true); } return jNotesServerTextArea; } /** * This method initializes jShowHomepageButton * * @return javax.swing.JButton */ private JButton getJShowHomepageButton() { if(jShowHomepageButton == null) { jShowHomepageButton = new JButton(); jShowHomepageButton.setText("Show"); jShowHomepageButton.setPreferredSize(new java.awt.Dimension(40,18)); jShowHomepageButton.setMargin(new java.awt.Insets(2,2,2,2)); jShowHomepageButton.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 10)); jShowHomepageButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { AdminTool.showHomepage(getJHomepageTextField().getText(), RequestDialog.this); } }); } return jShowHomepageButton; } /** * This method initializes jShowMailProviderButton * * @return javax.swing.JButton */ private JButton getJShowMailProviderButton() { if(jShowMailProviderButton == null) { jShowMailProviderButton = new JButton(); jShowMailProviderButton.setText("Show"); jShowMailProviderButton.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 10)); jShowMailProviderButton.setMargin(new java.awt.Insets(2,2,2,2)); jShowMailProviderButton.setPreferredSize(new java.awt.Dimension(40,18)); jShowMailProviderButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { String provider = getJEmailTextField().getText(); provider = "http://www." + provider.substring(provider.indexOf('@')+1); AdminTool.showHomepage(provider, RequestDialog.this); } }); } return jShowMailProviderButton; } /** * This method initializes jStateComboBox * * @return javax.swing.JComboBox */ private JComboBox<String> getJStateComboBox() { if(jStateComboBox == null) { jStateComboBox = new JComboBox<String>(BackedUserData.getStateNameArray( BackedUserData.USER_JPLAGADMIN)); } return jStateComboBox; } } // @jve:decl-index=0:visual-constraint="10,10"