Ignore:
Timestamp:
10/19/09 16:51:14 (15 years ago)
Author:
zeiss
Message:

support for due dates

Location:
trunk/de.ugoe.cs.swe.exercises
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/de.ugoe.cs.swe.exercises/.classpath

    r12 r14  
    11<?xml version="1.0" encoding="UTF-8"?> 
    22<classpath> 
     3        <classpathentry exported="true" kind="lib" path="lib/org.eclipse.nebula.widgets.formattedtext_1.0.0.HEAD.jar"/> 
     4        <classpathentry exported="true" kind="lib" path="lib/org.eclipse.nebula.widgets.datechooser_1.0.0.HEAD.jar"/> 
    35        <classpathentry exported="true" kind="lib" path="lib/antlr-runtime-3.1.3.jar"/> 
    46        <classpathentry exported="true" kind="lib" path="lib/jna.jar"/> 
  • trunk/de.ugoe.cs.swe.exercises/META-INF/MANIFEST.MF

    r10 r14  
    2020 lib/svnkit-javahl.jar, 
    2121 lib/svnkit.jar, 
    22  lib/trilead.jar 
     22 lib/trilead.jar, 
     23 lib/org.eclipse.nebula.widgets.datechooser_1.0.0.HEAD.jar, 
     24 lib/org.eclipse.nebula.widgets.formattedtext_1.0.0.HEAD.jar 
    2325Bundle-Vendor: Software Engineering for Distributed Systems Group, Uni Goettingen 
    2426Export-Package: de.ugoe.cs.swe.exercises, 
  • trunk/de.ugoe.cs.swe.exercises/build.properties

    r11 r14  
    1313               lib/svnkit-javahl.jar,\ 
    1414               lib/svnkit.jar,\ 
    15                lib/trilead.jar 
     15               lib/trilead.jar,\ 
     16               lib/org.eclipse.nebula.widgets.datechooser_1.0.0.HEAD.jar,\ 
     17               lib/org.eclipse.nebula.widgets.formattedtext_1.0.0.HEAD.jar 
    1618source.. = src/ 
  • trunk/de.ugoe.cs.swe.exercises/src/de/ugoe/cs/swe/exercises/exercisesheet/ExerciseSheet.java

    r3 r14  
    2121public class ExerciseSheet extends Model { 
    2222        private int number, revisionNumber, complexityValue, lectureEventId, 
    23                         exerciseMaxRevision, numOfExercises; 
     23                        exerciseMaxRevision, numOfExercises, dueDate; 
    2424        private boolean examination; 
    2525 
     
    4242 
    4343        public ExerciseSheet(int id, int number, int revisionNumber, 
    44                         int complexityValue, boolean examination, LectureEvent lectureEvent, int numOfExercises) { 
     44                        int complexityValue, boolean examination, LectureEvent lectureEvent, int numOfExercises, int dueDate) { 
    4545                super(id); 
    4646                this.number = number; 
     
    5050                this.lectureEventId = lectureEvent.getId(); 
    5151                this.numOfExercises = numOfExercises; 
     52                this.dueDate = dueDate; 
    5253        } 
    5354 
    5455        public ExerciseSheet(int number, int revisionNumber, int complexityValue, 
    55                         boolean examination, LectureEvent lectureEvent, int numOfExercises) { 
     56                        boolean examination, LectureEvent lectureEvent, int numOfExercises, int dueDate) { 
    5657                super(); 
    5758                this.number = number; 
     
    6162                this.lectureEventId = lectureEvent.getId(); 
    6263                this.numOfExercises = numOfExercises; 
     64                this.dueDate = dueDate; 
    6365        } 
    6466         
     
    7173                this.lectureEventId = lectureEvent.getId(); 
    7274                this.examination = false; 
     75                long currentTime = (System.currentTimeMillis() / 1000); 
     76                this.dueDate  = (int) currentTime; 
    7377        } 
    7478 
     
    118122        @Override 
    119123        protected void update() throws SQLException { 
    120                 PreparedStatement statement = prepareStatement("UPDATE exercisesheet SET number=?, examination=?, revisionnumber=?, complexityvalue=?, lectureevent=?, numOfExercises=? WHERE id=?"); 
    121                 statement.setInt(7, this.getId()); 
     124                PreparedStatement statement = prepareStatement("UPDATE exercisesheet SET number=?, examination=?, revisionnumber=?, complexityvalue=?, lectureevent=?, numOfExercises=?, dueDate=? WHERE id=?"); 
     125                statement.setInt(8, this.getId()); 
    122126                executeSaveQuery(statement); 
    123127        } 
     
    125129        @Override 
    126130        protected PreparedStatement insert() throws SQLException { 
    127                 PreparedStatement statement = prepareStatement("INSERT INTO exercisesheet (number, examination, revisionnumber, complexityvalue, lectureevent, numOfExercises) VALUES (?,?,?,?,?,?)"); 
     131                PreparedStatement statement = prepareStatement("INSERT INTO exercisesheet (number, examination, revisionnumber, complexityvalue, lectureevent, numOfExercises, dueDate) VALUES (?,?,?,?,?,?,?)"); 
    128132                executeSaveQuery(statement); 
    129133                return statement; 
     
    142146                statement.setInt(5, this.lectureEventId); 
    143147                statement.setInt(6, this.numOfExercises); 
     148                statement.setInt(7, this.dueDate); 
    144149                statement.executeUpdate(); 
    145150        } 
     
    176181                                        resultset.getInt("complexityvalue"), resultset 
    177182                                                        .getBoolean("examination"), LectureEvent 
    178                                                         .get(resultset.getInt("lectureevent")), resultset.getInt("numOfExercises"))); 
     183                                                        .get(resultset.getInt("lectureevent")), resultset.getInt("numOfExercises"), resultset.getInt("dueDate"))); 
    179184                } 
    180185                return lectures; 
     
    316321 
    317322        } 
     323 
     324        public int getDueDate() { 
     325                return dueDate; 
     326        } 
     327 
     328        public void setDueDate(int dueDate) { 
     329                this.dueDate = dueDate; 
     330        } 
     331         
     332         
    318333} 
  • trunk/de.ugoe.cs.swe.exercises/src/de/ugoe/cs/swe/exercises/exercisesheet/ExerciseSheetComposite.java

    r8 r14  
    33import java.io.File; 
    44import java.util.ArrayList; 
     5import java.util.Calendar; 
     6import java.util.GregorianCalendar; 
    57 
    68import org.eclipse.core.filesystem.EFS; 
    79import org.eclipse.core.filesystem.IFileStore; 
     10import org.eclipse.nebula.widgets.datechooser.DateChooserCombo; 
    811import org.eclipse.swt.SWT; 
    912import org.eclipse.swt.custom.SashForm; 
     
    2629import org.eclipse.swt.widgets.Composite; 
    2730import org.eclipse.swt.widgets.FileDialog; 
    28 import org.eclipse.swt.widgets.Group; 
    2931import org.eclipse.swt.widgets.Label; 
    3032import org.eclipse.swt.widgets.Shell; 
     
    6062        private TableColumn possibleTitle; 
    6163        private TableColumn possibleComplexity; 
    62         private Group group; 
     64        private Composite lectureEventFields; 
    6365        private SashForm sashForm; 
    6466        private Button generateButton; 
     
    7072        private Button previewButton; 
    7173        private Button solutionButton; 
     74        private Label lblLecureEvent; 
     75        private Label lblDueDate; 
     76        private DateChooserCombo dueDateChooserCombo; 
    7277 
    7378        class ExerciseDragger implements DragSourceListener { 
     
    154159                setLayout(new GridLayout(4, true)); 
    155160 
    156                 group = new Group(this, SWT.NONE); 
    157                 group.setLayout(new GridLayout(2, false)); 
    158                 group.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 
    159                                 2, 6)); 
    160  
    161                 Label sheetLabel = new Label(group, SWT.NONE); 
    162                 sheetLabel.setLayoutData(new GridData(SWT.LEFT, SWT.BOTTOM, false, 
    163                                 true, 1, 1)); 
     161                lectureEventFields = new Composite(this, SWT.NONE); 
     162                lectureEventFields.setLayout(new GridLayout(2, false)); 
     163                GridData gridData_1 = new GridData(SWT.FILL, SWT.TOP, false, false, 
     164                                2, 6); 
     165                gridData_1.heightHint = 201; 
     166                lectureEventFields.setLayoutData(gridData_1); 
     167 
     168                Label sheetLabel = new Label(lectureEventFields, SWT.NONE); 
     169                sheetLabel.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, 
     170                                false, 1, 1)); 
    164171                sheetLabel.setText("Sheet #"); 
    165172 
    166                 sheetNumberText = new Text(group, SWT.BORDER); 
    167                 sheetNumberText.setLayoutData(new GridData(SWT.LEFT, SWT.BOTTOM, false, 
     173                sheetNumberText = new Text(lectureEventFields, SWT.BORDER); 
     174                sheetNumberText.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, 
    168175                                false, 1, 1)); 
    169  
    170                 lectureEventLabel = new Label(group, SWT.NONE); 
    171                 lectureEventLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, 
    172                                 false, false, 2, 1)); 
    173                 lectureEventLabel.setText("Lecture Event"); 
    174  
    175                 Label complexityLabel = new Label(group, SWT.NONE); 
    176                 complexityLabel.setText("maximal complexity:"); 
    177  
    178                 complexityText = new Text(group, SWT.BORDER); 
    179  
    180                 lblOfExercises = new Label(group, SWT.NONE); 
     176                                 
     177                                lblLecureEvent = new Label(lectureEventFields, SWT.NONE); 
     178                                lblLecureEvent.setText("Lecure Event:"); 
     179                 
     180                                lectureEventLabel = new Label(lectureEventFields, SWT.NONE); 
     181                                lectureEventLabel.setLayoutData(new GridData(SWT.FILL, SWT.TOP, 
     182                                                true, false, 1, 1)); 
     183                                lectureEventLabel.setText("Lecture Event"); 
     184 
     185                Label complexityLabel = new Label(lectureEventFields, SWT.NONE); 
     186                complexityLabel.setText("Maximum Complexity:"); 
     187 
     188                complexityText = new Text(lectureEventFields, SWT.BORDER); 
     189                complexityText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); 
     190 
     191                lblOfExercises = new Label(lectureEventFields, SWT.NONE); 
    181192                lblOfExercises.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, 
    182193                                false, 1, 1)); 
    183194                lblOfExercises.setText("# of exercises"); 
    184195 
    185                 numOfExercisesText = new Text(group, SWT.BORDER); 
    186                 numOfExercisesText.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, 
     196                numOfExercisesText = new Text(lectureEventFields, SWT.BORDER); 
     197                numOfExercisesText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, 
    187198                                true, false, 1, 1)); 
    188  
    189                 examinationCheck = new Button(group, SWT.CHECK); 
     199                 
     200                lblDueDate = new Label(lectureEventFields, SWT.NONE); 
     201                lblDueDate.setText("Due Date:"); 
     202                 
     203                dueDateChooserCombo = new DateChooserCombo(lectureEventFields, SWT.NONE); 
     204                dueDateChooserCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); 
     205 
     206                examinationCheck = new Button(lectureEventFields, SWT.CHECK); 
    190207                examinationCheck.addSelectionListener(new SelectionAdapter() { 
    191208                        @Override 
     
    196213                examinationCheck.setSelection(true); 
    197214                examinationCheck.setText("is Examination"); 
    198                 new Label(group, SWT.NONE); 
    199  
    200                 sashForm = new SashForm(group, SWT.NONE); 
     215                new Label(lectureEventFields, SWT.NONE); 
     216 
     217                sashForm = new SashForm(lectureEventFields, SWT.NONE); 
    201218                sashForm.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, false, false, 
    202219                                2, 1)); 
     
    265282                sashForm.setWeights(new int[] { 1, 1 }); 
    266283 
    267                 sashForm_1 = new SashForm(group, SWT.NONE); 
     284                sashForm_1 = new SashForm(lectureEventFields, SWT.NONE); 
    268285                sashForm_1.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, 
    269286                                false, 2, 1)); 
     
    336353                        } 
    337354                }); 
    338                 previewButton.setText("PDF preview"); 
     355                previewButton.setText("PDF Preview"); 
    339356 
    340357                sashForm_1.setWeights(new int[] { 1, 1 }); 
     
    366383 
    367384                Label currentExerciseLabel = new Label(this, SWT.NONE); 
    368                 currentExerciseLabel.setText("current Exercises:"); 
     385                currentExerciseLabel.setText("Current Exercises:"); 
    369386 
    370387                generateButton = new Button(this, SWT.NONE); 
     
    380397                        } 
    381398                }); 
    382                 generateButton.setText("Generate Exercises"); 
     399                generateButton.setText("Auto-Assign Exercises"); 
    383400 
    384401                Label possibleExerciseLabel = new Label(this, SWT.NONE); 
    385                 possibleExerciseLabel.setText("possible Exercises:"); 
     402                possibleExerciseLabel.setText("Possible Exercises:"); 
    386403                new Label(this, SWT.NONE); 
    387404 
     
    454471                selected.setNumOfExercises(Integer.parseInt(numOfExercisesText 
    455472                                .getText())); 
     473                String[] dateComponents = dueDateChooserCombo.getText().split("\\."); 
     474                if (dateComponents.length == 3) { 
     475                        String year = dateComponents[2].trim(); 
     476                        String month = dateComponents[1].trim(); 
     477                        String day = dateComponents[0].trim(); 
     478                        if ((year.length() > 0) && (month.length() > 0) && (day.length() > 0)) { 
     479                                Calendar dueDate = new GregorianCalendar(); 
     480                                dueDate.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day)); 
     481                                dueDate.set(Calendar.MONTH, Integer.parseInt(month)-1); 
     482                                dueDate.set(Calendar.YEAR, Integer.parseInt(year)); 
     483                                long timestamp = (dueDate.getTimeInMillis() / 1000); 
     484                                int dueDateTimestamp = (int) timestamp; 
     485                                 
     486                                selected.setDueDate(dueDateTimestamp); 
     487                        } 
     488                } 
    456489                selected.save(); 
    457490        } 
     
    462495                sheetNumberText.setText("" + exerciseSheet.getNumber()); 
    463496                complexityText.setText("" + exerciseSheet.getComplexityValue()); 
     497                 
     498                Calendar dueDate = new GregorianCalendar(); 
     499                long timestamp = ((long) exerciseSheet.getDueDate()) * 1000; 
     500                dueDate.setTimeInMillis(timestamp); 
     501                dueDateChooserCombo.setValue(dueDate.getTime()); 
    464502                numOfExercisesText.setText(String.valueOf(exerciseSheet 
    465503                                .getNumOfExercises())); 
  • trunk/de.ugoe.cs.swe.exercises/src/de/ugoe/cs/swe/exercises/exercisesheet/PdfGenerator.java

    r13 r14  
    99import java.io.InputStreamReader; 
    1010import java.io.OutputStreamWriter; 
     11import java.text.DateFormat; 
    1112import java.util.ArrayList; 
     13import java.util.Calendar; 
     14import java.util.GregorianCalendar; 
     15import java.util.Locale; 
    1216import java.util.Scanner; 
    1317import java.util.regex.Matcher; 
     
    112116                        templatePath = templatePath.replace('\\','/'); 
    113117 
    114                         String deliveryDate = "todo..."; 
     118                        long dueDateTimeStamp = ((long)exercisesheet.getDueDate()) * 1000; 
     119                        Calendar dueDate = new GregorianCalendar(); 
     120                        dueDate.setTimeInMillis(dueDateTimeStamp); 
     121                        DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.GERMANY); 
     122                        String deliveryDate = dateFormat.format(dueDate.getTime()); 
    115123                         
    116124                        template = template.replaceAll("(\\W)LECTURE(\\W)", "$1" 
  • trunk/de.ugoe.cs.swe.exercises/src/de/ugoe/cs/swe/exercises/lecture/GUITreeView.java

    r3 r14  
    186186                btnSaveChanges.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, 
    187187                                false, 1, 1)); 
    188                 btnSaveChanges.setText("Save changes"); 
     188                btnSaveChanges.setText("Save Changes"); 
    189189                switchComposite(); 
    190190        } 
Note: See TracChangeset for help on using the changeset viewer.