From: <se...@us...> - 2008-05-15 22:03:22
|
Revision: 140 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=140&view=rev Author: sem62 Date: 2008-05-15 15:03:24 -0700 (Thu, 15 May 2008) Log Message: ----------- Cell size bugs fixed. Object in cells is an instance of CompileQPart now. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java Added Paths: ----------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java WebEditor/template/CompileQModel.conf WebEditor/template/SimpleQuestionPropertiestsDlg.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-14 21:36:31 UTC (rev 139) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-15 22:03:24 UTC (rev 140) @@ -4,7 +4,6 @@ import java.awt.event.ActionListener; import javax.swing.JButton; -import javax.swing.ListSelectionModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.table.DefaultTableColumnModel; @@ -30,7 +29,7 @@ private javax.swing.JPanel captionPanel; private javax.swing.JPanel partsPanel; private javax.swing.JScrollPane jScrollPane1; - private javax.swing.JTable partsTable; + private PartsTable partsTable; private javax.swing.JTextField titleTextField; private javax.swing.JTextField captionTextField; private javax.swing.JTextField questionTextField; @@ -147,6 +146,7 @@ dlg.simpleQuestionAnswersDataModel = itemModel.getData(manifestItem) .getAnswers(); dlg.partsTable.setModel(dlg.simpleQuestionAnswersDataModel); + partsTable.getColumnModel().getColumn(1).setCellEditor(new MultiLineTableCellEditor()); DefaultTableColumnModel columnModel = (DefaultTableColumnModel) dlg.partsTable @@ -207,11 +207,7 @@ editQuestionInHtmlBtn.addActionListener(this); editAnswerVariantInHtmlEditor.addActionListener(this); - partsTable = new javax.swing.JTable(); - partsTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - - partsTable.setDefaultRenderer(MultiLineCellRenderer.class, new MultiLineCellRenderer()); - partsTable.setDefaultRenderer(PartOptionsPanel.class, new PartOptionsPanel()); + partsTable = new PartsTable(); setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java 2008-05-14 21:36:31 UTC (rev 139) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java 2008-05-15 22:03:24 UTC (rev 140) @@ -8,7 +8,8 @@ import javax.swing.border.EmptyBorder; import javax.swing.table.TableCellRenderer; -public class MultiLineCellRenderer extends JTextArea implements TableCellRenderer { +public class MultiLineCellRenderer extends JTextArea implements + TableCellRenderer { /** * */ @@ -42,9 +43,18 @@ setText((value == null) ? "" : value.toString()); -// int thisHeight = getPreferredSize().height + 2; -// table.setRowHeight(row, thisHeight); + updateUI(); + + int thisHeight = getPreferredSize().height + 2; + if (thisHeight < 100) { + thisHeight = 100; + } + + if (table.getRowHeight(row) != thisHeight){ + table.setRowHeight(row, thisHeight); + } + return this; } } 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-14 21:36:31 UTC (rev 139) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java 2008-05-15 22:03:24 UTC (rev 140) @@ -17,17 +17,16 @@ TableCellEditor, InputMethodListener, KeyListener { @Override public void keyPressed(KeyEvent e) { -// cellSizeUpdate(); } @Override public void keyReleased(KeyEvent e) { -// cellSizeUpdate(); } @Override public void keyTyped(KeyEvent e) { - cellSizeUpdate(); + + //cellSizeUpdate(); } protected int tableRow; @@ -40,6 +39,11 @@ private void cellSizeUpdate() { int thisHeight = myEditor.getPreferredSize().height + 2; + + if (thisHeight < 100){ + thisHeight = 100; + } + table.setRowHeight(tableRow, thisHeight); } Added: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java 2008-05-15 22:03:24 UTC (rev 140) @@ -0,0 +1,54 @@ +package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; + +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; + +import javax.swing.JTable; +import javax.swing.ListSelectionModel; + +public class PartsTable extends JTable implements MouseListener { + + @Override + public void mouseClicked(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void mouseEntered(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void mouseExited(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void mousePressed(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void mouseReleased(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + /** + * + */ + private static final long serialVersionUID = 1L; + + public PartsTable() { + setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + + setDefaultRenderer(MultiLineCellRenderer.class, new MultiLineCellRenderer()); + setDefaultRenderer(PartOptionsPanel.class, new PartOptionsPanel()); + + addMouseListener(this); + } +} Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java 2008-05-14 21:36:31 UTC (rev 139) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java 2008-05-15 22:03:24 UTC (rev 140) @@ -1,6 +1,13 @@ package edu.lnu.FireFly.WebEditor.ItemModels.CompileQ; -public class CompileQPart { +import edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ.MultiLineCellRenderer; + +public class CompileQPart extends MultiLineCellRenderer{ + /** + * + */ + private static final long serialVersionUID = 1L; + private String answerText = ""; private double answerPoint = 0; @@ -23,4 +30,8 @@ public void setAnswerText(String answerText) { this.answerText = answerText; } + + public String toString(){ + return getAnswerText(); + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java 2008-05-14 21:36:31 UTC (rev 139) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java 2008-05-15 22:03:24 UTC (rev 140) @@ -72,7 +72,7 @@ case 0: return row + 1; case 1: - return answers.get(row).getAnswerText(); + return answers.get(row); case 2: return answers.get(row).getAnswerPoint(); default: @@ -112,15 +112,18 @@ answers.add(new CompileQPart("")); } + String newValue = arg0.toString(); + switch (arg2) { case 1: - answers.get(arg1).setAnswerText(arg0.toString()); +// newValue = ((CompileQPart)arg0) + answers.get(arg1).setAnswerText(newValue); break; case 2: try { double value = 0; - if (!arg0.toString().equals("")) { - value = Double.valueOf(arg0.toString()); + if (!newValue.equals("")) { + value = Double.valueOf(newValue); } answers.get(arg1).setAnswerPoint(value); } catch (NumberFormatException e) { Added: WebEditor/template/CompileQModel.conf =================================================================== --- WebEditor/template/CompileQModel.conf (rev 0) +++ WebEditor/template/CompileQModel.conf 2008-05-15 22:03:24 UTC (rev 140) @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<SimpleQuestion> +<caption>New simple question</caption> +<question>Answer "Yes" to question, please.</question> +<ShowOnSummaryPage>true</ShowOnSummaryPage> +<answers singleVariant="false"> +<answer point="0.0">Yes</answer> +<answer point="1.0">No</answer> +</answers> +</SimpleQuestion> \ No newline at end of file Added: WebEditor/template/SimpleQuestionPropertiestsDlg.java =================================================================== --- WebEditor/template/SimpleQuestionPropertiestsDlg.java (rev 0) +++ WebEditor/template/SimpleQuestionPropertiestsDlg.java 2008-05-15 22:03:24 UTC (rev 140) @@ -0,0 +1,579 @@ +package edu.lnu.FireFly.WebEditor.GUI.Dialogs; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.JButton; +import javax.swing.ListSelectionModel; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import javax.swing.table.DefaultTableColumnModel; + +import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionAnswersDataModel; +import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionData; +import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionModel; + +/** + * + * @author Yura + */ +public class SimpleQuestionPropertiestsDlg extends PropertyDlg implements + ActionListener, ChangeListener { + + 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 questionPanel; + private javax.swing.JPanel answersPanel; + private javax.swing.JScrollPane jScrollPane1; + private javax.swing.JTable answersTable; + 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 SimpleQuestionAnswersDataModel simpleQuestionAnswersDataModel; + + private javax.swing.JTextField currentAnswerVariant; + + public SimpleQuestionPropertiestsDlg() { + obj = this; + + initComponents(); + } + + @Override + public void actionPerformed(ActionEvent arg0) { + super.actionPerformed(arg0); + + if (arg0.getSource() == editQuestionInHtmlBtn) { + editTextFieldInHtmlEditor(questionTextField); + } + + if (arg0.getSource() == editCaptionInHtmlBtn) { + editTextFieldInHtmlEditor(captionTextField); + } + + if (arg0.getSource() == editAnswerVariantInHtmlEditor) { + int selectedRow = answersTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + String text = answersTable.getModel().getValueAt(selectedRow, 1) + .toString(); + + currentAnswerVariant.setText(text); + + editTextFieldInHtmlEditor(currentAnswerVariant); + } + + if (arg0.getSource() == insertAnswerVariantBtn) { + int selectedRow = answersTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + simpleQuestionAnswersDataModel.insertRow(selectedRow); + answersTable.getSelectionModel().setSelectionInterval(selectedRow + 1, selectedRow + 1); + } + + if (arg0.getSource() == deleteAnswerVariantBtn) { + int selectedRow = answersTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + simpleQuestionAnswersDataModel.deleteRow(selectedRow); + + if (selectedRow >= simpleQuestionAnswersDataModel.getRowCount()){ + selectedRow--; + } + + answersTable.getSelectionModel().setSelectionInterval(selectedRow, + selectedRow); + } + if (arg0.getSource() == moveUpAnswerVariantBtn) { + int selectedRow = answersTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + if (simpleQuestionAnswersDataModel.moveUp(selectedRow)){ + answersTable.getSelectionModel().setSelectionInterval(selectedRow - 1, selectedRow - 1); + } + } + + if (arg0.getSource() == moveDownAnswerVariantBtn) { + int selectedRow = answersTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + if (simpleQuestionAnswersDataModel.moveDown(selectedRow)){ + answersTable.getSelectionModel().setSelectionInterval(selectedRow + 1, selectedRow+1); + } + } + } + + @Override + protected void fillFields() { + SimpleQuestionPropertiestsDlg dlg = (SimpleQuestionPropertiestsDlg) obj; + dlg.titleTextField.setText(manifestItem.getTitle()); + + SimpleQuestionModel itemModel = new SimpleQuestionModel(); + + dlg.captionTextField.setText(itemModel.getData(manifestItem) + .getCaption()); + dlg.sameAsTitleCheckBox.setSelected(dlg.titleTextField.getText() + .equals(dlg.captionTextField.getText())); + dlg.questionTextField.setText(itemModel.getData(manifestItem) + .getQuestion()); + + dlg.simpleQuestionAnswersDataModel = itemModel.getData(manifestItem) + .getAnswers(); + dlg.answersTable.setModel(dlg.simpleQuestionAnswersDataModel); + + DefaultTableColumnModel columnModel = (DefaultTableColumnModel) dlg.answersTable + .getColumnModel(); + columnModel.getColumn(0).setPreferredWidth(1); + columnModel.getColumn(1).setPreferredWidth(300); + columnModel.getColumn(2).setPreferredWidth(1); + + dlg.titleTextField.selectAll(); + } + + @Override + public void editedHtmlTextWasSet() { + super.editedHtmlTextWasSet(); + + String text = currentAnswerVariant.getText(); + int selectedRow = answersTable.getSelectedRow(); + answersTable.getModel().setValueAt(text, selectedRow, 1); + } + + private void initComponents() { + setTitle("Propertiests..."); + + 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(); + questionPanel = new javax.swing.JPanel(); + questionTextField = new javax.swing.JTextField(); + oneAnswerCheckBox = new javax.swing.JCheckBox(); + answersPanel = 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"); + + moveDownAnswerVariantBtn = new JButton("Down"); + moveUpAnswerVariantBtn = new JButton("Up"); + + insertAnswerVariantBtn.addActionListener(this); + deleteAnswerVariantBtn.addActionListener(this); + moveDownAnswerVariantBtn.addActionListener(this); + moveUpAnswerVariantBtn.addActionListener(this); + + currentAnswerVariant = new javax.swing.JTextField(); + captionTextField.addActionListener(this); + + cancelButton.addActionListener(this); + okButton.addActionListener(this); + sameAsTitleCheckBox.addChangeListener(this); + oneAnswerCheckBox.addChangeListener(this); + editCaptionInHtmlBtn.addActionListener(this); + editQuestionInHtmlBtn.addActionListener(this); + editAnswerVariantInHtmlEditor.addActionListener(this); + + answersTable = new javax.swing.JTable(); + answersTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + + setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE); + + generalPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("General")); + titleLabel.setText("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())); + + 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) + .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())); + + questionPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("Question")); + oneAnswerCheckBox.setText("Only one correct answer"); + + javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout( + questionPanel); + questionPanel.setLayout(jPanel3Layout); + jPanel3Layout + .setHorizontalGroup(jPanel3Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel3Layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + jPanel3Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent( + oneAnswerCheckBox)) + .addContainerGap(283, Short.MAX_VALUE)) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + jPanel3Layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + questionTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, + 370, Short.MAX_VALUE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + editQuestionInHtmlBtn, + javax.swing.GroupLayout.PREFERRED_SIZE, + 30, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap())); + jPanel3Layout + .setVerticalGroup(jPanel3Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel3Layout + .createSequentialGroup() + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(oneAnswerCheckBox) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup( + jPanel3Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + editQuestionInHtmlBtn, + javax.swing.GroupLayout.PREFERRED_SIZE, + 20, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent( + questionTextField, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap())); + + answersPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("Variants of answer")); + + jScrollPane1.setViewportView(answersTable); + + javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout( + answersPanel); + answersPanel.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) + .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( + layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent( + answersPanel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + questionPanel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + 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) + .addComponent( + questionPanel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + answersPanel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .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); + + pack(); + } + + @Override + protected void saveChanges() { + SimpleQuestionModel itemModel = new SimpleQuestionModel(); + + manifestItem.setTitle(titleTextField.getText()); + + SimpleQuestionData data = itemModel.getData(manifestItem); + + if (sameAsTitleCheckBox.isSelected()) { + data.setCaption(titleTextField.getText()); + } else { + data.setCaption(captionTextField.getText()); + } + + data.setQuestion(questionTextField.getText()); + + data.setAnswers(simpleQuestionAnswersDataModel); + + 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()); + } + + if (e.getSource() == oneAnswerCheckBox) { + simpleQuestionAnswersDataModel.setSingleVariant(oneAnswerCheckBox + .isSelected()); + } + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |