From: <se...@us...> - 2008-05-18 15:05:01
|
Revision: 143 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=143&view=rev Author: sem62 Date: 2008-05-18 08:05:01 -0700 (Sun, 18 May 2008) Log Message: ----------- Full designed CompileQPropertyDlg Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java Added Paths: ----------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumber.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumberCellRenderer.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 13:47:32 UTC (rev 142) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-18 15:05:01 UTC (rev 143) @@ -4,6 +4,8 @@ import java.awt.event.ActionListener; import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.ScrollPaneConstants; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.table.DefaultTableColumnModel; @@ -25,7 +27,9 @@ private javax.swing.JCheckBox sameAsTitleCheckBox; private javax.swing.JCheckBox oneAnswerCheckBox; + private javax.swing.JComboBox programmingLanguage; private javax.swing.JLabel titleLabel; + private javax.swing.JLabel programminglanguageLabel; private javax.swing.JPanel generalPanel; private javax.swing.JPanel captionPanel; private javax.swing.JPanel partsPanel; @@ -175,20 +179,29 @@ .equals(dlg.captionTextField.getText())); dlg.compileQTableDataModel = itemModel.getData(manifestItem).getParts(); + + dlg.programmingLanguage.addItem("Any"); + dlg.programmingLanguage.addItem("C++"); + dlg.programmingLanguage.addItem("Pascal"); dlg.partsTable.setModel(dlg.compileQTableDataModel); - partsTable.getColumnModel().getColumn(1).setCellEditor( - multiLineTableCellEditor); - partsTable.getColumnModel().getColumn(2).setCellEditor( - partAttributesCellEditor); - DefaultTableColumnModel columnModel = (DefaultTableColumnModel) dlg.partsTable .getColumnModel(); - columnModel.getColumn(0).setPreferredWidth(1); - columnModel.getColumn(1).setPreferredWidth(300); - columnModel.getColumn(2).setPreferredWidth(1); + columnModel.getColumn(1).setCellEditor(multiLineTableCellEditor); + columnModel.getColumn(2).setCellEditor(partAttributesCellEditor); + + columnModel.getColumn(0).setMaxWidth(20); + columnModel.getColumn(0).setMinWidth(20); + columnModel.getColumn(0).setResizable(false); + + columnModel.getColumn(1).setResizable(true); + + columnModel.getColumn(2).setMaxWidth(100); + columnModel.getColumn(2).setMinWidth(100); + columnModel.getColumn(2).setResizable(false); + dlg.titleTextField.selectAll(); } @@ -206,6 +219,7 @@ generalPanel = new javax.swing.JPanel(); titleLabel = new javax.swing.JLabel(); + programminglanguageLabel = new javax.swing.JLabel("Programming language:"); titleTextField = new javax.swing.JTextField(); captionPanel = new javax.swing.JPanel(); captionTextField = new javax.swing.JTextField(); @@ -221,6 +235,7 @@ editAnswerVariantInHtmlEditor = new JButton("HTML Editor"); insertAnswerVariantBtn = new JButton("Insert"); deleteAnswerVariantBtn = new JButton("Delete"); + programmingLanguage = new JComboBox(); moveDownAnswerVariantBtn = new JButton("Down"); moveUpAnswerVariantBtn = new JButton("Up"); @@ -341,7 +356,8 @@ captionTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE)) + javax.swing.GroupLayout.PREFERRED_SIZE + )) .addContainerGap())); oneAnswerCheckBox.setText("Only one correct answer"); @@ -350,25 +366,47 @@ .createTitledBorder("Variants of answer")); jScrollPane1.setViewportView(partsTable); + jScrollPane1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); 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.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() + ) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, + jPanel4Layout + .createSequentialGroup() + .addContainerGap() + .addComponent(programminglanguageLabel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE + ) + .addContainerGap(10, 10) + .addComponent(programmingLanguage, 118, 118, 118) + .addContainerGap() + ) + ); jPanel4Layout .setVerticalGroup(jPanel4Layout @@ -377,7 +415,22 @@ .addGroup( jPanel4Layout .createSequentialGroup() - .addContainerGap() + .addContainerGap(10, 10) + .addGroup( + jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addGroup( + jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(programminglanguageLabel, + 20, 20, 20) + .addComponent(programmingLanguage, + 20, 20, 20) + ) + ) + .addContainerGap(10, 10) .addComponent( jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, Added: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumber.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumber.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumber.java 2008-05-18 15:05:01 UTC (rev 143) @@ -0,0 +1,21 @@ +package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; + +public class PartNumber { + private int number = 0; + + public PartNumber(){ + + } + + public PartNumber(int aNumber){ + number = aNumber; + } + + public int getNumber() { + return number; + } + + public void setNumber(int number) { + this.number = number; + } +} Added: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumberCellRenderer.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumberCellRenderer.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumberCellRenderer.java 2008-05-18 15:05:01 UTC (rev 143) @@ -0,0 +1,32 @@ +package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; + +import java.awt.Color; +import java.awt.Component; + +import javax.swing.JLabel; +import javax.swing.JTable; +import javax.swing.UIManager; +import javax.swing.table.TableCellRenderer; + +public class PartNumberCellRenderer extends JLabel implements + TableCellRenderer { + + /** + * + */ + private static final long serialVersionUID = 1L; + + public PartNumberCellRenderer() { + setOpaque(true); + } + + public Component getTableCellRendererComponent(JTable table, Object value, + boolean isSelected, boolean hasFocus, int row, int column) { + + this.setBackground((Color)UIManager.getDefaults().get("Label.background")); + this.setForeground((Color)UIManager.getDefaults().get("Label.foreground")); + + setText((value == null) ? "" : String.valueOf(((PartNumber)value).getNumber())); + return this; + } +} \ No newline at end of file Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java 2008-05-18 13:47:32 UTC (rev 142) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java 2008-05-18 15:05:01 UTC (rev 143) @@ -17,5 +17,6 @@ setDefaultRenderer(CompileQPart.class, new MultiLineCellRenderer()); setDefaultRenderer(PartAttributes.class, new PartAttributesRenderer()); + setDefaultRenderer(PartNumber.class, new PartNumberCellRenderer()); } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java 2008-05-18 13:47:32 UTC (rev 142) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java 2008-05-18 15:05:01 UTC (rev 143) @@ -5,151 +5,152 @@ import javax.swing.table.DefaultTableModel; +import edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ.PartNumber; + public class CompileQPartsTableModel extends DefaultTableModel { - /** - * - */ - private static final long serialVersionUID = 1L; + /** + * + */ + private static final long serialVersionUID = 1L; - public List<CompileQPart> questionParts = new ArrayList<CompileQPart>(); + public List<CompileQPart> questionParts = new ArrayList<CompileQPart>(); - @Override - public Class<?> getColumnClass(int col) { - if (col == 1){ - return CompileQPart.class; - } - - if (col == 2){ - return PartAttributes.class; - } - - return Object.class; + @Override + public Class<?> getColumnClass(int col) { + switch (col) { + case 0: + return PartNumber.class; + case 1: + return CompileQPart.class; + case 2: + return PartAttributes.class; + default: + return Object.class; } + } - @Override - public int getColumnCount() { - return 3; + @Override + public int getColumnCount() { + return 3; + } + + @Override + public String getColumnName(int arg0) { + switch (arg0) { + case 0: + return "#"; + case 1: + return "Part content"; + default: + return "Options"; } + } - @Override - public String getColumnName(int arg0) { - switch (arg0) { - case 0: - return "#"; - case 1: - return "Part content"; - default: - return "Options"; - } + @Override + public int getRowCount() { + + if (questionParts == null) { + return 0; } - @Override - public int getRowCount() { + int answersCount = questionParts.size(); - if (questionParts == null) { - return 0; - } + return answersCount > 0 ? answersCount : 1; + } - int answersCount = questionParts.size(); - - - - return answersCount > 0 ? answersCount : 1; + @Override + public Object getValueAt(int row, int col) { + if (row == questionParts.size()) { + return null; } - @Override - public Object getValueAt(int row, int col) { - if (row == questionParts.size()) { - return null; - } + switch (col) { + case 0: + return new PartNumber(row + 1); + case 1: + return questionParts.get(row); + case 2: + return questionParts.get(row).getPartAttributes(); + default: + return null; + } + } - switch (col) { - case 0: - return row + 1; - case 1: - return questionParts.get(row); - case 2: - return questionParts.get(row).getPartAttributes(); - default: - return null; - } + @Override + public boolean isCellEditable(int row, int col) { + switch (col) { + case 0: + return false; + case 1: + return true; + case 2: + return true; + default: + return false; } + } - @Override - public boolean isCellEditable(int row, int col) { - switch (col){ - case 0: - return false; - case 1: - return true; - case 2: - return true; - default: - return false; - } + @Override + public void setValueAt(Object value, int row, int col) { + if (row == questionParts.size()) { + questionParts.add(new CompileQPart("")); } - @Override - public void setValueAt(Object value, int row, int col) { - if (row == questionParts.size()) { - questionParts.add(new CompileQPart("")); - } + String newValue = value.toString(); - String newValue = value.toString(); + switch (col) { + case 1: + questionParts.get(row).setAnswerText(newValue); + break; + case 2: + questionParts.get(row).setPartAttributes((PartAttributes) value); + break; + } - switch (col) { - case 1: - questionParts.get(row).setAnswerText(newValue); - break; - case 2: - questionParts.get(row).setPartAttributes((PartAttributes)value); - break; - } + fireTableRowsUpdated(row, row); + } - fireTableRowsUpdated(row, row); + public void deleteRow(int selectedRow) { + if (selectedRow < questionParts.size() && selectedRow >= 0) { + questionParts.remove(selectedRow); + fireTableRowsDeleted(selectedRow, selectedRow); } + } - public void deleteRow(int selectedRow) { - if (selectedRow < questionParts.size() && selectedRow >= 0) { - questionParts.remove(selectedRow); - fireTableRowsDeleted(selectedRow, selectedRow); - } + public void insertRow(int selectedRow) { + if (selectedRow >= questionParts.size()) { + selectedRow--; } - public void insertRow(int selectedRow) { - if (selectedRow >= questionParts.size()){ - selectedRow--; - } - - questionParts.add(selectedRow + 1, new CompileQPart("")); - fireTableRowsInserted(selectedRow + 1, selectedRow + 1); + questionParts.add(selectedRow + 1, new CompileQPart("")); + fireTableRowsInserted(selectedRow + 1, selectedRow + 1); + } + + public boolean moveUp(int selectedRow) { + if (selectedRow < 1 || selectedRow >= questionParts.size()) { + return false; } - public boolean moveUp(int selectedRow) { - if (selectedRow < 1 || selectedRow >= questionParts.size()){ - return false; - } - - CompileQPart answer = questionParts.get(selectedRow); - questionParts.set(selectedRow, questionParts.get(selectedRow - 1)); - questionParts.set(selectedRow - 1, answer); - - fireTableRowsUpdated(selectedRow - 1, selectedRow); - - return true; + CompileQPart answer = questionParts.get(selectedRow); + questionParts.set(selectedRow, questionParts.get(selectedRow - 1)); + questionParts.set(selectedRow - 1, answer); + + fireTableRowsUpdated(selectedRow - 1, selectedRow); + + return true; + } + + public boolean moveDown(int selectedRow) { + if (selectedRow < 0 || selectedRow >= questionParts.size() - 1) { + return false; } - public boolean moveDown(int selectedRow) { - if (selectedRow < 0 || selectedRow >= questionParts.size() - 1){ - return false; - } - - CompileQPart answer = questionParts.get(selectedRow); - questionParts.set(selectedRow, questionParts.get(selectedRow + 1)); - questionParts.set(selectedRow + 1, answer); - - fireTableRowsUpdated(selectedRow + 1, selectedRow); - - return true; - } + CompileQPart answer = questionParts.get(selectedRow); + questionParts.set(selectedRow, questionParts.get(selectedRow + 1)); + questionParts.set(selectedRow + 1, answer); + + fireTableRowsUpdated(selectedRow + 1, selectedRow); + + return true; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |