From: <se...@us...> - 2008-05-18 13:47:27
|
Revision: 142 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=142&view=rev Author: sem62 Date: 2008-05-18 06:47:32 -0700 (Sun, 18 May 2008) Log Message: ----------- fixed bugs with table Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-18 11:46:28 UTC (rev 141) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-18 13:47:32 UTC (rev 142) @@ -7,6 +7,7 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.table.DefaultTableColumnModel; +import javax.swing.table.TableCellEditor; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.PropertyDlg; import edu.lnu.FireFly.WebEditor.ItemModels.CompileQ.CompileQData; @@ -18,479 +19,505 @@ * @author Yura */ public class CompileQPropertiestsDlg extends PropertyDlg implements - ActionListener, ChangeListener { + ActionListener, ChangeListener { - private static final long serialVersionUID = 1961383080461718171L; + private static final long serialVersionUID = 1961383080461718171L; - private javax.swing.JCheckBox sameAsTitleCheckBox; - private javax.swing.JCheckBox oneAnswerCheckBox; - private javax.swing.JLabel titleLabel; - private javax.swing.JPanel generalPanel; - private javax.swing.JPanel captionPanel; - private javax.swing.JPanel partsPanel; - private javax.swing.JScrollPane jScrollPane1; - private PartsTable partsTable; - private javax.swing.JTextField titleTextField; - private javax.swing.JTextField captionTextField; - private javax.swing.JTextField questionTextField; - private javax.swing.JButton editCaptionInHtmlBtn; - private javax.swing.JButton editQuestionInHtmlBtn; - private javax.swing.JButton editAnswerVariantInHtmlEditor; - private javax.swing.JButton insertAnswerVariantBtn; - private javax.swing.JButton deleteAnswerVariantBtn; - private javax.swing.JButton moveUpAnswerVariantBtn; - private javax.swing.JButton moveDownAnswerVariantBtn; - private CompileQPartsTableModel simpleQuestionAnswersDataModel; + private javax.swing.JCheckBox sameAsTitleCheckBox; + private javax.swing.JCheckBox oneAnswerCheckBox; + private javax.swing.JLabel titleLabel; + private javax.swing.JPanel generalPanel; + private javax.swing.JPanel captionPanel; + private javax.swing.JPanel partsPanel; + private javax.swing.JScrollPane jScrollPane1; + private PartsTable partsTable; + private javax.swing.JTextField titleTextField; + private javax.swing.JTextField captionTextField; + private javax.swing.JTextField questionTextField; + private javax.swing.JButton editCaptionInHtmlBtn; + private javax.swing.JButton editQuestionInHtmlBtn; + private javax.swing.JButton editAnswerVariantInHtmlEditor; + private javax.swing.JButton insertAnswerVariantBtn; + private javax.swing.JButton deleteAnswerVariantBtn; + private javax.swing.JButton moveUpAnswerVariantBtn; + private javax.swing.JButton moveDownAnswerVariantBtn; + private CompileQPartsTableModel compileQTableDataModel; - private javax.swing.JTextField currentAnswerVariant; + private javax.swing.JTextField currentAnswerVariant; - public CompileQPropertiestsDlg() { - obj = this; + private MultiLineTableCellEditor multiLineTableCellEditor = new MultiLineTableCellEditor(); + private PartAttributesCellEditor partAttributesCellEditor = new PartAttributesCellEditor(); - initComponents(); + public CompileQPropertiestsDlg() { + obj = this; + + initComponents(); + } + + @Override + public void actionPerformed(ActionEvent arg0) { + super.actionPerformed(arg0); + + if (arg0.getSource() == editQuestionInHtmlBtn) { + editTextFieldInHtmlEditor(questionTextField); } - @Override - public void actionPerformed(ActionEvent arg0) { - super.actionPerformed(arg0); + if (arg0.getSource() == editCaptionInHtmlBtn) { + editTextFieldInHtmlEditor(captionTextField); + } - if (arg0.getSource() == editQuestionInHtmlBtn) { - editTextFieldInHtmlEditor(questionTextField); - } + if (arg0.getSource() == editAnswerVariantInHtmlEditor) { + int selectedRow = partsTable.getSelectedRow(); - if (arg0.getSource() == editCaptionInHtmlBtn) { - editTextFieldInHtmlEditor(captionTextField); - } + if (selectedRow < 0) { + return; + } - if (arg0.getSource() == editAnswerVariantInHtmlEditor) { - int selectedRow = partsTable.getSelectedRow(); + stopCellEditing(); + String text = partsTable.getModel().getValueAt(selectedRow, 1) + .toString(); - if (selectedRow < 0) { - return; - } + currentAnswerVariant.setText(text); - String text = partsTable.getModel().getValueAt(selectedRow, 1) - .toString(); + editTextFieldInHtmlEditor(currentAnswerVariant); + } - currentAnswerVariant.setText(text); + if (arg0.getSource() == insertAnswerVariantBtn) { + int selectedRow = partsTable.getSelectedRow(); - editTextFieldInHtmlEditor(currentAnswerVariant); - } + if (selectedRow < 0) { + return; + } - if (arg0.getSource() == insertAnswerVariantBtn) { - int selectedRow = partsTable.getSelectedRow(); + stopCellEditing(); + compileQTableDataModel.insertRow(selectedRow); + partsTable.getSelectionModel().setSelectionInterval( + selectedRow + 1, selectedRow + 1); + } - if (selectedRow < 0) { - return; - } + if (arg0.getSource() == deleteAnswerVariantBtn) { + int selectedRow = partsTable.getSelectedRow(); - simpleQuestionAnswersDataModel.insertRow(selectedRow); - partsTable.getSelectionModel().setSelectionInterval(selectedRow + 1, selectedRow + 1); - } + if (selectedRow < 0) { + return; + } - if (arg0.getSource() == deleteAnswerVariantBtn) { - int selectedRow = partsTable.getSelectedRow(); + stopCellEditing(); + compileQTableDataModel.deleteRow(selectedRow); - if (selectedRow < 0) { - return; - } + if (selectedRow >= compileQTableDataModel.getRowCount()) { + selectedRow--; + } - simpleQuestionAnswersDataModel.deleteRow(selectedRow); - - if (selectedRow >= simpleQuestionAnswersDataModel.getRowCount()){ - selectedRow--; - } - - partsTable.getSelectionModel().setSelectionInterval(selectedRow, - selectedRow); - } - if (arg0.getSource() == moveUpAnswerVariantBtn) { - int selectedRow = partsTable.getSelectedRow(); + partsTable.getSelectionModel().setSelectionInterval(selectedRow, + selectedRow); + } + if (arg0.getSource() == moveUpAnswerVariantBtn) { + int selectedRow = partsTable.getSelectedRow(); - if (selectedRow < 0) { - return; - } + if (selectedRow < 0) { + return; + } - if (simpleQuestionAnswersDataModel.moveUp(selectedRow)){ - partsTable.getSelectionModel().setSelectionInterval(selectedRow - 1, selectedRow - 1); - } - } + stopCellEditing(); + if (compileQTableDataModel.moveUp(selectedRow)) { + partsTable.getSelectionModel().setSelectionInterval( + selectedRow - 1, selectedRow - 1); + } + } - if (arg0.getSource() == moveDownAnswerVariantBtn) { - int selectedRow = partsTable.getSelectedRow(); + if (arg0.getSource() == moveDownAnswerVariantBtn) { + int selectedRow = partsTable.getSelectedRow(); - if (selectedRow < 0) { - return; - } + if (selectedRow < 0) { + return; + } - if (simpleQuestionAnswersDataModel.moveDown(selectedRow)){ - partsTable.getSelectionModel().setSelectionInterval(selectedRow + 1, selectedRow+1); - } + stopCellEditing(); + if (compileQTableDataModel.moveDown(selectedRow)) { + partsTable.getSelectionModel().setSelectionInterval( + selectedRow + 1, selectedRow + 1); + } + } + } + + public boolean stopCellEditing() { + try { + int column = partsTable.getEditingColumn(); + if (column > -1) { + TableCellEditor cellEditor = partsTable.getColumnModel() + .getColumn(column).getCellEditor(); + if (cellEditor == null) { + cellEditor = partsTable.getDefaultEditor(partsTable + .getColumnClass(column)); } + + if (cellEditor != null) { + cellEditor.stopCellEditing(); + } + } + } catch (Exception e) { + return false; } + return true; + } - @Override - protected void fillFields() { - CompileQPropertiestsDlg dlg = (CompileQPropertiestsDlg) obj; - dlg.titleTextField.setText(manifestItem.getTitle()); + @Override + protected void fillFields() { + CompileQPropertiestsDlg dlg = (CompileQPropertiestsDlg) obj; + dlg.titleTextField.setText(manifestItem.getTitle()); - CompileQModel itemModel = new CompileQModel(); + CompileQModel itemModel = new CompileQModel(); -// dlg.captionTextField.setText(itemModel.getData(manifestItem) -// .getCaption()); - dlg.sameAsTitleCheckBox.setSelected(dlg.titleTextField.getText() - .equals(dlg.captionTextField.getText())); + // dlg.captionTextField.setText(itemModel.getData(manifestItem) + // .getCaption()); + dlg.sameAsTitleCheckBox.setSelected(dlg.titleTextField.getText() + .equals(dlg.captionTextField.getText())); - dlg.simpleQuestionAnswersDataModel = itemModel.getData(manifestItem) - .getParts(); - - dlg.partsTable.setModel(dlg.simpleQuestionAnswersDataModel); + dlg.compileQTableDataModel = itemModel.getData(manifestItem).getParts(); - partsTable.getColumnModel().getColumn(1).setCellEditor(new MultiLineTableCellEditor()); - partsTable.getColumnModel().getColumn(2).setCellEditor(new PartAttributesCellEditor()); + dlg.partsTable.setModel(dlg.compileQTableDataModel); - DefaultTableColumnModel columnModel = (DefaultTableColumnModel) dlg.partsTable - .getColumnModel(); - columnModel.getColumn(0).setPreferredWidth(1); - columnModel.getColumn(1).setPreferredWidth(300); - columnModel.getColumn(2).setPreferredWidth(1); + partsTable.getColumnModel().getColumn(1).setCellEditor( + multiLineTableCellEditor); + partsTable.getColumnModel().getColumn(2).setCellEditor( + partAttributesCellEditor); - dlg.titleTextField.selectAll(); - } + DefaultTableColumnModel columnModel = (DefaultTableColumnModel) dlg.partsTable + .getColumnModel(); + columnModel.getColumn(0).setPreferredWidth(1); + columnModel.getColumn(1).setPreferredWidth(300); + columnModel.getColumn(2).setPreferredWidth(1); - @Override - public void editedHtmlTextWasSet() { - super.editedHtmlTextWasSet(); + dlg.titleTextField.selectAll(); + } - String text = currentAnswerVariant.getText(); - int selectedRow = partsTable.getSelectedRow(); - partsTable.getModel().setValueAt(text, selectedRow, 1); - } + @Override + public void editedHtmlTextWasSet() { + super.editedHtmlTextWasSet(); - private void initComponents() { - setTitle("Propertiests..."); + String text = currentAnswerVariant.getText(); + int selectedRow = partsTable.getSelectedRow(); + partsTable.getModel().setValueAt(text, selectedRow, 1); + } - generalPanel = new javax.swing.JPanel(); - titleLabel = new javax.swing.JLabel(); - titleTextField = new javax.swing.JTextField(); - captionPanel = new javax.swing.JPanel(); - captionTextField = new javax.swing.JTextField(); - sameAsTitleCheckBox = new javax.swing.JCheckBox(); - questionTextField = new javax.swing.JTextField(); - oneAnswerCheckBox = new javax.swing.JCheckBox(); - partsPanel = new javax.swing.JPanel(); - jScrollPane1 = new javax.swing.JScrollPane(); - cancelButton = new javax.swing.JButton("Cancel"); - okButton = new javax.swing.JButton("Ok"); - editCaptionInHtmlBtn = new JButton("..."); - editQuestionInHtmlBtn = new JButton("..."); - editAnswerVariantInHtmlEditor = new JButton("HTML Editor"); - insertAnswerVariantBtn = new JButton("Insert"); - deleteAnswerVariantBtn = new JButton("Delete"); + private void initComponents() { + setTitle("Propertiests..."); - moveDownAnswerVariantBtn = new JButton("Down"); - moveUpAnswerVariantBtn = new JButton("Up"); + generalPanel = new javax.swing.JPanel(); + titleLabel = new javax.swing.JLabel(); + titleTextField = new javax.swing.JTextField(); + captionPanel = new javax.swing.JPanel(); + captionTextField = new javax.swing.JTextField(); + sameAsTitleCheckBox = new javax.swing.JCheckBox(); + questionTextField = new javax.swing.JTextField(); + oneAnswerCheckBox = new javax.swing.JCheckBox(); + partsPanel = new javax.swing.JPanel(); + jScrollPane1 = new javax.swing.JScrollPane(); + cancelButton = new javax.swing.JButton("Cancel"); + okButton = new javax.swing.JButton("Ok"); + editCaptionInHtmlBtn = new JButton("..."); + editQuestionInHtmlBtn = new JButton("..."); + editAnswerVariantInHtmlEditor = new JButton("HTML Editor"); + insertAnswerVariantBtn = new JButton("Insert"); + deleteAnswerVariantBtn = new JButton("Delete"); - insertAnswerVariantBtn.addActionListener(this); - deleteAnswerVariantBtn.addActionListener(this); - moveDownAnswerVariantBtn.addActionListener(this); - moveUpAnswerVariantBtn.addActionListener(this); + moveDownAnswerVariantBtn = new JButton("Down"); + moveUpAnswerVariantBtn = new JButton("Up"); - currentAnswerVariant = new javax.swing.JTextField(); - captionTextField.addActionListener(this); + insertAnswerVariantBtn.addActionListener(this); + deleteAnswerVariantBtn.addActionListener(this); + moveDownAnswerVariantBtn.addActionListener(this); + moveUpAnswerVariantBtn.addActionListener(this); - cancelButton.addActionListener(this); - okButton.addActionListener(this); - sameAsTitleCheckBox.addChangeListener(this); - oneAnswerCheckBox.addChangeListener(this); - editCaptionInHtmlBtn.addActionListener(this); - editQuestionInHtmlBtn.addActionListener(this); - editAnswerVariantInHtmlEditor.addActionListener(this); + currentAnswerVariant = new javax.swing.JTextField(); + captionTextField.addActionListener(this); - partsTable = new PartsTable(); + cancelButton.addActionListener(this); + okButton.addActionListener(this); + sameAsTitleCheckBox.addChangeListener(this); + oneAnswerCheckBox.addChangeListener(this); + editCaptionInHtmlBtn.addActionListener(this); + editQuestionInHtmlBtn.addActionListener(this); + editAnswerVariantInHtmlEditor.addActionListener(this); - setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE); + partsTable = new PartsTable(); - generalPanel.setBorder(javax.swing.BorderFactory - .createTitledBorder("General")); - titleLabel.setText("Title"); + setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE); - javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout( - generalPanel); - generalPanel.setLayout(jPanel1Layout); - jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING).addGroup( - jPanel1Layout.createSequentialGroup().addContainerGap() - .addComponent(titleLabel)).addGroup( - jPanel1Layout.createSequentialGroup().addContainerGap() - .addComponent(titleTextField, - javax.swing.GroupLayout.DEFAULT_SIZE, 364, - Short.MAX_VALUE).addContainerGap())); - jPanel1Layout - .setVerticalGroup(jPanel1Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel1Layout - .createSequentialGroup() - .addComponent(titleLabel) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED, - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE) - .addComponent( - titleTextField, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap())); + generalPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("General")); + titleLabel.setText("Title"); - captionPanel.setBorder(javax.swing.BorderFactory - .createTitledBorder("Caption")); - sameAsTitleCheckBox.setText("Some as the title"); + javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout( + generalPanel); + generalPanel.setLayout(jPanel1Layout); + jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING).addGroup( + jPanel1Layout.createSequentialGroup().addContainerGap() + .addComponent(titleLabel)).addGroup( + jPanel1Layout.createSequentialGroup().addContainerGap() + .addComponent(titleTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, 364, + Short.MAX_VALUE).addContainerGap())); + jPanel1Layout + .setVerticalGroup(jPanel1Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel1Layout + .createSequentialGroup() + .addComponent(titleLabel) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + titleTextField, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap())); - javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout( - captionPanel); - captionPanel.setLayout(jPanel2Layout); - jPanel2Layout - .setHorizontalGroup(jPanel2Layout - .createParallelGroup( + captionPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("Caption")); + sameAsTitleCheckBox.setText("Some as the title"); + + javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout( + captionPanel); + captionPanel.setLayout(jPanel2Layout); + jPanel2Layout + .setHorizontalGroup(jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel2Layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + jPanel2Layout + .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel2Layout - .createSequentialGroup() - .addContainerGap() - .addGroup( - jPanel2Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addComponent( - sameAsTitleCheckBox)) - .addContainerGap(283, Short.MAX_VALUE)) - .addGroup( - javax.swing.GroupLayout.Alignment.TRAILING, - jPanel2Layout - .createSequentialGroup() - .addContainerGap() - .addComponent( - captionTextField, - javax.swing.GroupLayout.DEFAULT_SIZE, - 370, Short.MAX_VALUE) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent( - editCaptionInHtmlBtn, - javax.swing.GroupLayout.PREFERRED_SIZE, - 30, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap())); - jPanel2Layout - .setVerticalGroup(jPanel2Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel2Layout - .createSequentialGroup() - .addComponent(sameAsTitleCheckBox) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup( - jPanel2Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent( - editCaptionInHtmlBtn, - javax.swing.GroupLayout.PREFERRED_SIZE, - 20, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent( - captionTextField, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap())); + .addComponent( + sameAsTitleCheckBox)) + .addContainerGap(283, Short.MAX_VALUE)) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + jPanel2Layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + captionTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, + 370, Short.MAX_VALUE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + editCaptionInHtmlBtn, + javax.swing.GroupLayout.PREFERRED_SIZE, + 30, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap())); + jPanel2Layout + .setVerticalGroup(jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel2Layout + .createSequentialGroup() + .addComponent(sameAsTitleCheckBox) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup( + jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + editCaptionInHtmlBtn, + javax.swing.GroupLayout.PREFERRED_SIZE, + 20, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent( + captionTextField, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap())); - oneAnswerCheckBox.setText("Only one correct answer"); + oneAnswerCheckBox.setText("Only one correct answer"); - partsPanel.setBorder(javax.swing.BorderFactory - .createTitledBorder("Variants of answer")); + partsPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("Variants of answer")); - jScrollPane1.setViewportView(partsTable); + jScrollPane1.setViewportView(partsTable); - javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout( - partsPanel); - partsPanel.setLayout(jPanel4Layout); - jPanel4Layout.setHorizontalGroup(jPanel4Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.TRAILING).addGroup( - jPanel4Layout.createSequentialGroup() - .addComponent(moveUpAnswerVariantBtn) + javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout( + partsPanel); + partsPanel.setLayout(jPanel4Layout); + jPanel4Layout.setHorizontalGroup(jPanel4Layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.TRAILING).addGroup( + jPanel4Layout.createSequentialGroup().addComponent( + moveUpAnswerVariantBtn).addContainerGap(10, 10) + .addComponent(moveDownAnswerVariantBtn) + .addContainerGap(10, 10).addComponent( + insertAnswerVariantBtn).addContainerGap(10, 10) + .addComponent(deleteAnswerVariantBtn).addContainerGap( + 10, 10).addComponent( + editAnswerVariantInHtmlEditor) + .addContainerGap()).addGroup( + jPanel4Layout.createSequentialGroup().addContainerGap() + .addComponent(jScrollPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, 364, + Short.MAX_VALUE).addContainerGap())); + + jPanel4Layout + .setVerticalGroup(jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel4Layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + jScrollPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, + 111, Short.MAX_VALUE) .addContainerGap(10, 10) - .addComponent(moveDownAnswerVariantBtn) - .addContainerGap(10, 10) - .addComponent(insertAnswerVariantBtn) - .addContainerGap(10, 10) - .addComponent(deleteAnswerVariantBtn) - .addContainerGap(10, 10) - .addComponent( - editAnswerVariantInHtmlEditor) - .addContainerGap()).addGroup( - jPanel4Layout.createSequentialGroup().addContainerGap() - .addComponent(jScrollPane1, - javax.swing.GroupLayout.DEFAULT_SIZE, 364, - Short.MAX_VALUE).addContainerGap())); + .addGroup( + jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + moveUpAnswerVariantBtn, + 20, 20, 20) + .addComponent( + moveDownAnswerVariantBtn, + 20, 20, 20) + .addComponent( + insertAnswerVariantBtn, + 20, 20, 20) + .addComponent( + deleteAnswerVariantBtn, + 20, 20, 20) + .addComponent( + editAnswerVariantInHtmlEditor, + 20, 20, 20)) + .addContainerGap())); - jPanel4Layout - .setVerticalGroup(jPanel4Layout - .createParallelGroup( + javax.swing.GroupLayout layout = new javax.swing.GroupLayout( + getContentPane()); + getContentPane().setLayout(layout); + layout + .setHorizontalGroup(layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + layout + .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel4Layout - .createSequentialGroup() - .addContainerGap() - .addComponent( - jScrollPane1, - javax.swing.GroupLayout.DEFAULT_SIZE, - 111, Short.MAX_VALUE) - .addContainerGap(10, 10) - .addGroup( - jPanel4Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent( - moveUpAnswerVariantBtn, - 20, 20, 20) - .addComponent( - moveDownAnswerVariantBtn, - 20, 20, 20) - .addComponent( - insertAnswerVariantBtn, - 20, 20, 20) - .addComponent( - deleteAnswerVariantBtn, - 20, 20, 20) - .addComponent( - editAnswerVariantInHtmlEditor, - 20, 20, 20)) - .addContainerGap())); - - javax.swing.GroupLayout layout = new javax.swing.GroupLayout( - getContentPane()); - getContentPane().setLayout(layout); - layout - .setHorizontalGroup(layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( + .addComponent( + partsPanel, + 600, 600, + Short.MAX_VALUE) + .addComponent( + captionPanel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + generalPanel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, layout - .createSequentialGroup() - .addContainerGap() - .addGroup( - layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addComponent( - partsPanel, - 600, - 600, - Short.MAX_VALUE) - .addComponent( - captionPanel, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE) - .addComponent( - generalPanel, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE) - .addGroup( - javax.swing.GroupLayout.Alignment.TRAILING, - layout - .createSequentialGroup() - .addComponent( - okButton) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent( - cancelButton))) - .addContainerGap())); - layout - .setVerticalGroup(layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - layout - .createSequentialGroup() - .addContainerGap() - .addComponent( - generalPanel, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent( - captionPanel, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent( - partsPanel, - 300, - 300, - 300) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup( - layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent( - cancelButton, - 20, 20, 20) - .addComponent(okButton, - 20, 20, 20)) - .addContainerGap( - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE))); + .createSequentialGroup() + .addComponent( + okButton) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + cancelButton))) + .addContainerGap())); + layout + .setVerticalGroup(layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + generalPanel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + captionPanel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(partsPanel, 300, 300, 300) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup( + layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + cancelButton, + 20, 20, 20) + .addComponent(okButton, + 20, 20, 20)) + .addContainerGap( + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE))); - this.getRootPane().setDefaultButton(okButton); + this.getRootPane().setDefaultButton(okButton); - pack(); - } + pack(); + } - @Override - protected void saveChanges() { - CompileQModel itemModel = new CompileQModel(); - - manifestItem.setTitle(titleTextField.getText()); + @Override + protected void saveChanges() { + stopCellEditing(); + CompileQModel itemModel = new CompileQModel(); - CompileQData data = itemModel.getData(manifestItem); + manifestItem.setTitle(titleTextField.getText()); - if (sameAsTitleCheckBox.isSelected()) { - data.setCaption(titleTextField.getText()); - } else { - data.setCaption(captionTextField.getText()); - } + CompileQData data = itemModel.getData(manifestItem); - data.setParts(simpleQuestionAnswersDataModel); - - itemModel.updateItemResource(manifestItem, true); + if (sameAsTitleCheckBox.isSelected()) { + data.setCaption(titleTextField.getText()); + } else { + data.setCaption(captionTextField.getText()); } - @Override - public void stateChanged(ChangeEvent e) { - if (e.getSource() == sameAsTitleCheckBox) { - if (sameAsTitleCheckBox.isSelected() - && captionTextField.isEnabled()) { - captionTextField.setText(titleTextField.getText()); - } - captionTextField.setEnabled(!sameAsTitleCheckBox.isSelected()); - } + data.setParts(compileQTableDataModel); + + itemModel.updateItemResource(manifestItem, true); + } + + @Override + public void stateChanged(ChangeEvent e) { + if (e.getSource() == sameAsTitleCheckBox) { + if (sameAsTitleCheckBox.isSelected() + && captionTextField.isEnabled()) { + captionTextField.setText(titleTextField.getText()); + } + captionTextField.setEnabled(!sameAsTitleCheckBox.isSelected()); } + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java 2008-05-18 11:46:28 UTC (rev 141) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java 2008-05-18 13:47:32 UTC (rev 142) @@ -1,8 +1,6 @@ package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; import java.awt.Component; -import java.awt.event.KeyEvent; -import java.awt.event.KeyListener; import javax.swing.AbstractCellEditor; import javax.swing.BorderFactory; @@ -12,22 +10,10 @@ import javax.swing.table.TableCellEditor; public class MultiLineTableCellEditor extends AbstractCellEditor implements - TableCellEditor, KeyListener { - @Override - public void keyPressed(KeyEvent e) { - } + TableCellEditor { - @Override - public void keyReleased(KeyEvent e) { - } - - @Override - public void keyTyped(KeyEvent e) { - -// cellSizeUpdate(false); - } - protected int tableRow; + protected int tableCol; protected JTable table; private void cellSizeUpdate(boolean fullUpdate) { @@ -59,12 +45,10 @@ myEditor.setWrapStyleWord(true); myEditor.setLineWrap(true); myEditor.setOpaque(true); - myEditor.addKeyListener(this); myScrollPane = new JScrollPane(myEditor); myScrollPane.setBorder(BorderFactory.createEmptyBorder()); - myScrollPane - .setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + myScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); myScrollPane.getVerticalScrollBar().setFocusable(false); myScrollPane.getHorizontalScrollBar().setFocusable(false); } @@ -73,6 +57,7 @@ boolean isSelected, int row, int column) { this.table = table; this.tableRow = row; + this.tableCol = column; myEditor.setBackground(isSelected ? table.getSelectionBackground() : table.getBackground()); @@ -91,4 +76,12 @@ public Object getCellEditorValue() { return myEditor.getText(); } + + public int getTableRow() { + return tableRow; + } + + public int getTableCol() { + return tableCol; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |