ok! Line 148 is interesting.


----- Ursprüngliche Mail ----
Von: Jeremy Thomerson <jer...@wickettraining.com>
An: users@wicket.apache.org
Gesendet: Dienstag, den 20. Oktober 2009, 16:50:31 Uhr
Betreff: Re: why is the model empty?

Well, again, the only way for me to help you more is to supply a quickstart
that reproduces this.

--
Jeremy Thomerson
http://www.wickettraining.com



On Tue, Oct 20, 2009 at 9:49 AM, Peter Arnulf Lustig <uuuuu...@yahoo.de>wrote:

> I am submitting a textfield in a form to wicket. Just the standard HTTP
> Post -- And everywhere it functions well -- I just can't get it why it won't
> function there.
>
> And I don't utilize any JS (Ajax etc.) for that task! It's weird.
>
>
>
> ----- Ursprüngliche Mail ----
> Von: Jeremy Thomerson <jer...@wickettraining.com>
> An: users@wicket.apache.org
> Gesendet: Dienstag, den 20. Oktober 2009, 16:40:45 Uhr
> Betreff: Re: why is the model empty?
>
> Yes - that's what I'm saying.  On the webpage, presumably with JS, he is
> saying that he is setting the value of the text field.  Then when it's
> submitted, Wicket should update the model before he gets to onSubmit
>
> --
> Jeremy Thomerson
> http://www.wickettraining.com
>
>
>
> On Tue, Oct 20, 2009 at 9:31 AM, Peter Arnulf Lustig <uuuuu...@yahoo.de
> >wrote:
>
> >
> >
> > "sets the value of the textfield programmatically
> > on the page, and submits the form, the model should be updated by the
> time
> > he gets to this onSubmit method."
> >
> > How do you mean that? I think wicket sets the model automaticly because
> the
> > model is attached to the component.
> >
> >
> >
> > ----- Ursprüngliche Mail ----
> > Von: Jeremy Thomerson <jer...@wickettraining.com>
> > An: users@wicket.apache.org
> > Gesendet: Dienstag, den 20. Oktober 2009, 16:28:31 Uhr
> > Betreff: Re: why is the model empty?
> >
> > That's not an immutable model.  It's equivalent to new Model<String>("")
> -
> > which is fine for this use.  Assuming the text field and the button are
> > within a form, and that he sets the value of the textfield
> programmatically
> > on the page, and submits the form, the model should be updated by the
> time
> > he gets to this onSubmit method.
> >
> > --
> > Jeremy Thomerson
> > http://www.wickettraining.com
> >
> >
> >
> > On Tue, Oct 20, 2009 at 9:24 AM, Ernesto Reinaldo Barreiro <
> > reier...@gmail.com> wrote:
> >
> > > Sorry but when is the model object update?
> > > final TextField<String> tagTitle = new TextField<String>("tagTitle",
> > > Model.of(""));
> > >
> > > just creates and in-mutable model? Or,  am I missing something?
> > >
> > > Best,
> > >
> > > Ernesto
> > >
> > > On Tue, Oct 20, 2009 at 3:17 PM, Peter Arnulf Lustig <
> uuuuu...@yahoo.de
> > > >wrote:
> > >
> > > > hi,
> > > >
> > > > in the submit logic the getModel().getObject() is an empty string
> > > although
> > > > I set it via textfield:
> > > >
> > > > final Button tagSubmit = new Button("tagSubmit", Model.of("")) {
> > > >            @Override
> > > >            public void onSubmit() {
> > > >                    tagTitle.getModel().getObject() // it is empty!!
> > > >                }
> > > >            }
> > > >
> > > >        };
> > > >
> > > >
> > > > that's the textfield:
> > > >
> > > > final TextField<String> tagTitle = new TextField<String>("tagTitle",
> > > > Model.of(""));
> > > >
> > > >
> > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> > > > For additional commands, e-mail: users-h...@wicket.apache.org
> > > >
> > > >
> > >
> >
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> > For additional commands, e-mail: users-h...@wicket.apache.org
> >
> >
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>



      
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.omikron.org;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;

import org.apache.wicket.AttributeModifier;
import org.apache.wicket.PageParameters;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.behavior.SimpleAttributeModifier;
import org.apache.wicket.feedback.ContainerFeedbackMessageFilter;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.IChoiceRenderer;
import org.apache.wicket.markup.html.form.ListMultipleChoice;
import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.markup.repeater.data.DataView;
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.neodatis.odb.OID;
import org.neodatis.odb.core.oid.OIDFactory;
import org.omikron.org.model.QuestionDataProvider;
import org.omikron.org.model.Worker;
import org.omikron.org.pojo.Question;
import org.omikron.org.pojo.Tagging;

/**
 * 
 */
public class Fragenkatalog extends Panel {

        DataView<Question>                              questionDataView;
        WebMarkupContainer                              questionContainer;
        Fragment                                                
questionFragment;
        // CreateQuestionsForm questionForm;

        Model<String>                                   systemTagModel;

        // Tag
        TextField<String>                               systemTag;
        Link                                                    systemTagAdd;
        Form                                                    systemTagForm;
        LinkedHashMap<Integer, String>  tagging         = new 
LinkedHashMap<Integer, String>();
        ListMultipleChoice<Integer>             taggingList;
        FeedbackPanel                                   addTaggingFeedbackPanel;
        IModel<List<? extends Integer>> choices;
        IChoiceRenderer<Integer>                renderer;
        WebMarkupContainer                              webMarkupContainer;
        Model<String>                                   webMarkupContainerModel;
        List<Tagging>                                   tagListe;
        List                                                    selected        
= new ArrayList();
        Model<String>                                   chosenTagModel;
        Boolean                                                 isUpdate        
= false;
        Question                                                q;

        public void updateChosenTags() {
                chosenTagModel.setObject("");
                Iterator<Tagging> itt = selected.iterator();
                while (itt.hasNext()) {
                        if (chosenTagModel.getObject().equalsIgnoreCase("")) {
                                chosenTagModel.setObject(itt.next().getTitle());
                        } else {
                                
chosenTagModel.setObject(chosenTagModel.getObject() + ", " + 
itt.next().getTitle());
                        }
                }
        }

        public Fragenkatalog(String id) {
                super(id);

                final Form form = new Form("createQuestionForm");
                // form.setOutputMarkupId(true);
                form.setVisible(false);
                add(form);
                final WebMarkupContainer addFrage = new 
WebMarkupContainer("addFrage");
                // addFrage.setOutputMarkupId(true);

                final TextArea<String> addFrageFragestellung = new 
TextArea<String>("fragestellung", Model.of(""));
                // addFrageFragestellung.setOutputMarkupId(true);
                final FeedbackPanel feedbackPanelQuestionForm = new 
FeedbackPanel("feedbackPanelQuestionForm").setFilter(new 
ContainerFeedbackMessageFilter(addFrage));
                // feedbackPanelQuestionForm.setOutputMarkupId(true);

                final TextField<String> addFrageTitle = new 
TextField<String>("title", Model.of(""));
                addFrageTitle.setRequired(true);

                final Button addFrageSubmit = new Button("addFrageSubmit", 
Model.of("")) {
                        @Override
                        public void onSubmit() {

                                addFrageTitle.validate();
                                if (addFrageTitle.isValid() != true) { return; }
                                try {
                                        if (!isUpdate) {
                                                q = new Question();
                                        }
                                        
q.setText(addFrageFragestellung.getDefaultModelObjectAsString());
                                        
q.setTitle(addFrageTitle.getDefaultModelObjectAsString());
                                        if (!isUpdate) {
                                                Worker.SaveQuestion(q);
                                        } else {
                                                Worker.UpdateQuestion(q);
                                        }
                                        info("Frage gespeichert");
                                } catch (Exception e) {
                                        error("Jemand hat diesen Datensatz 
schneller editiert als du und hat somit gewonnen. Lade den Datensatz über die 
Liste neu!");
                                }
                        }
                };
                addFrageSubmit.setDefaultFormProcessing(false);
                // addFrageTitle.setOutputMarkupId(true);

                form.add(addFrage);
                
addFrage.add(addFrageTitle).add(addFrageFragestellung).add(addFrageSubmit).add(feedbackPanelQuestionForm);
                final FeedbackPanel feedbackTagSubmit = new 
FeedbackPanel("feedbackTagSubmit");
                feedbackTagSubmit.setOutputMarkupId(true);
                final WebMarkupContainer tag = new WebMarkupContainer("tag");
                tag.setOutputMarkupId(true);

                final TextField<String> tagTitle = new 
TextField<String>("tagTitle", Model.of(""));
                tagTitle.setRequired(true);
                // tagTitle.setOutputMarkupId(true);

                feedbackTagSubmit.setFilter(new 
ContainerFeedbackMessageFilter(tag));
                tag.add(feedbackTagSubmit);
                final Button tagSubmit = new Button("tagSubmit") {
                        @Override
                        public void onSubmit() {
                                
System.out.println(tagTitle.getDefaultModelObjectAsString());
                        }

                };
                tagSubmit.setDefaultFormProcessing(false);
                tagSubmit.setOutputMarkupId(true);
                form.add(tag);
                tag.add(tagTitle);
                tag.add(tagSubmit);

                chosenTagModel = new Model();
                final Label chosenTag = (Label) new Label("chosenTag", 
chosenTagModel).setOutputMarkupId(true);
                tag.add(chosenTag);

                Iterator<Tagging> it = Worker.LoadTagging();
                List tags = new ArrayList();
                while (it.hasNext()) {
                        tags.add(it.next());
                }

                tag.add(new ListView("taggingList", tags) {
                        @Override
                        protected void populateItem(ListItem item) {
                                final Tagging tag = (Tagging) 
item.getModelObject();
                                item.add(new Label("tagTitle", tag.getTitle()));
                                item.add(new AjaxLink("select") {

                                        void auswahl(Tagging item) {
                                                if (selected.contains(item)) {

                                                } else {
                                                        selected.add(item);
                                                }
                                                updateChosenTags();
                                        }

                                        @Override
                                        public void onClick(AjaxRequestTarget 
arg0) {
                                                auswahl(tag);
                                                arg0.addComponent(chosenTag);
                                                
System.out.println(selected.size());

                                        }
                                });

                                item.add(new AjaxLink("deselect") {
                                        @Override
                                        public void onClick(AjaxRequestTarget 
arg0) {
                                                if (selected.contains(tag)) {
                                                        selected.remove(tag);
                                                }
                                                updateChosenTags();
                                                arg0.addComponent(chosenTag);

                                        }

                                });

                                item
                                                .add(new Link("delete") {

                                                        @Override
                                                        public void onClick() {

                                                        }

                                                }.setOutputMarkupId(true).add(
                                                                                
                                new SimpleAttributeModifier("onclick",
                                                                                
                                                "return confirm('Bist du 
sicher? Es werden alle Referenzen entfernt!');")));
                        }
                });

                // STEP 1
                final WebMarkupContainer qContainer = new 
WebMarkupContainer("fragen_gridview");

                questionDataView = new DataView<Question>("fragen_dataview", 
new QuestionDataProvider()) {

                        @Override
                        protected void populateItem(final Item<Question> item) {
                                Question question = item.getModelObject();
                                item.add(new Link("editQuestion") {
                                        @Override
                                        public void onClick() {
                                                qContainer.setVisible(false);
                                                form.setVisible(true);
                                                // 
systemTagForm.setVisible(true);
                                                // setUpdate();

                                                // Ehemals eine update-methode
                                                isUpdate = true;
                                                q = item.getModelObject();
                                                
addFrageTitle.setModel(Model.of(q.getTitle()));
                                                
addFrageFragestellung.setModel(Model.of(q.getText()));
                                                q.setSysTimestamp(new Date());
                                                // ---

                                                this.setVisible(false);
                                        }
                                });

                                final Model<String> message = 
Model.of("Löschen?");
                                Label deleteQuestionLabel = new 
Label("deleteQuestionLabel", message);
                                Link deleteQuestion = (Link) new 
Link("deleteQuestion", message) {
                                        @Override
                                        public void onClick() {
                                                
Worker.DeleteQuestion(item.getModelObject().getId());
                                                setResponsePage(Backend.class, 
new PageParameters("go=fragen"));
                                        }
                                }.add(new SimpleAttributeModifier("onclick", 
"return confirm('Bist du sicher? Es werden alle Referenzen gelöscht!');"));

                                questionFragment = new Fragment("placeDelete", 
"fragmentDelete", this);
                                
questionFragment.add(deleteQuestion.add(deleteQuestionLabel));
                                item.add(questionFragment);
                                item.add(new Label("titel", 
question.getTitle()));

                                // -- HIER WIRD DER TEXT GESPLITTET, DAMIT ER 
NICHT HORIZONTAL WÄCHST --
                                String fragestellung = question.getText();
                                try {
                                        String[] fst = fragestellung.split(" ");

                                        fragestellung = "";
                                        int i = 0;
                                        for (String s : fst) {
                                                i++;
                                                fragestellung = fragestellung + 
" " + s;
                                                if (i % 20 == 0) {
                                                        fragestellung = 
fragestellung + "<br/>";
                                                }
                                        }
                                } catch (Exception e) {}
                                // --
                                item.add(new Label("fragestellung", 
fragestellung).setEscapeModelStrings(false));
                                item.add(new AttributeModifier("class", true, 
new AbstractReadOnlyModel<String>() {
                                        @Override
                                        public String getObject() {
                                                return (item.getIndex() % 2 == 
1) ? "even" : "odd";

                                        }
                                }));
                        }
                };

                qContainer.setOutputMarkupId(true);
                qContainer.add(questionDataView);
                add(qContainer);

                final Link createQuestion = new Link("createQuestion") {

                        @Override
                        public void onClick() {
                                qContainer.setVisible(false);
                                form.setVisible(true);
                                this.setVisible(false);
                        }
                };
                add(createQuestion);

        }

        public void createTaggingBereich(OID fragenID) {
                webMarkupContainer = new WebMarkupContainer("taggingBereich");
                webMarkupContainer.setOutputMarkupId(true);
                addTaggingFeedbackPanel = new 
FeedbackPanel("addTaggingFeedbackPanel");
                addTaggingFeedbackPanel.setFilter(new 
ContainerFeedbackMessageFilter(webMarkupContainer));
                addTaggingFeedbackPanel.setOutputMarkupId(true);
                final Model<String> taggingTitleModel = Model.of("");
                Form addTagging = new Form("addTagging");
                TextField<String> taggingTitle = new 
TextField<String>("taggingTitle", taggingTitleModel);

                Iterator<Tagging> taggingiterator = Worker.LoadTagging();
                while (taggingiterator.hasNext()) {
                        Tagging erg = taggingiterator.next();
                        Integer value = Integer.valueOf(erg.getId().toString());
                        tagging.put(value, erg.getTitle());
                }
                choices = Model.of((List<Integer>) new 
ArrayList<Integer>(tagging.keySet()));
                renderer = new IChoiceRenderer<Integer>() {
                        public Object getDisplayValue(Integer arg0) {
                                return tagging.get(arg0);
                        }

                        public String getIdValue(Integer arg0, int arg1) {
                                return arg0.toString();
                        }
                };

                taggingList = new ListMultipleChoice<Integer>("taggingList", 
new Model(), choices, renderer).setMaxRows(10);
                taggingList.setOutputMarkupId(true);
                // 
Worker.DeleteTagging(OdbClassOID.oidFromString(String.valueOf("356")));
                AjaxButton deleteTag = new AjaxButton("deleteTag", addTagging) {

                        @Override
                        protected void onSubmit(AjaxRequestTarget arg0, Form<?> 
arg1) {
                                Iterator it = 
taggingList.getModelObject().iterator();
                                while (it.hasNext()) {
                                        Object itt = it.next();
                                        
Worker.DeleteTagging(OIDFactory.buildObjectOID(Long.valueOf(itt.toString())));
                                        
tagging.remove(Integer.valueOf(itt.toString()));
                                        choices.setObject(new 
ArrayList<Integer>(tagging.keySet()));

                                }
                                info("Auswahl gelöscht");
                                arg0.addComponent(webMarkupContainer);
                        }

                };
                addTagging.add(deleteTag);
                AjaxButton taggingBereichSubmit = new 
AjaxButton("taggingBereichSubmit", addTagging) {
                        @Override
                        protected void onSubmit(AjaxRequestTarget arg0, Form<?> 
arg1) {
                                if 
(Worker.CountTagging(taggingTitleModel.getObject()) > 0) {
                                        error("Leider ist der Tag-Titel bereits 
im System!");
                                } else if (taggingTitleModel.getObject() == 
null) {
                                        error("Bitte was eingeben");
                                } else {
                                        Tagging t = new Tagging();
                                        
t.setTitle(taggingTitleModel.getObject());
                                        Worker.SaveTagging(t);
                                        
tagging.put(Integer.valueOf(t.getId().toString()), t.getTitle());
                                        info("Tag mit dem Titel " + 
t.getTitle() + " angelegt!");
                                }
                                choices.setObject(new 
ArrayList<Integer>(tagging.keySet()));
                                arg0.addComponent(webMarkupContainer);
                        }
                };

                AjaxButton taggingBereichLokaleRepo = new 
AjaxButton("taggingBereichLokaleRepo", addTagging) {
                        @Override
                        protected void onSubmit(AjaxRequestTarget arg0, Form<?> 
arg1) {

                        }
                };

                webMarkupContainer.setVisible(false);

                addTagging.add(taggingBereichLokaleRepo);

                addTagging.add(taggingBereichSubmit);
                
add(webMarkupContainer.add(addTagging.add(taggingList).add(addTaggingFeedbackPanel).add(taggingTitle)));
                System.out.println(new Date());
        }

}
















// WORKER CLASS

package org.omikron.org.model;

import java.security.NoSuchAlgorithmException;
import java.util.Date;
import java.util.Iterator;
import java.util.Random;

import org.neodatis.odb.ODB;
import org.neodatis.odb.ODBFactory;
import org.neodatis.odb.OID;
import org.neodatis.odb.Objects;
import org.neodatis.odb.core.query.IQuery;
import org.neodatis.odb.core.query.criteria.Where;
import org.neodatis.odb.impl.core.query.criteria.CriteriaQuery;
import org.omikron.org.pojo.Administrator;
import org.omikron.org.pojo.Question;
import org.omikron.org.pojo.Systemsetting;
import org.omikron.org.pojo.Tagging;

public class Worker {

        public static ODB initDB() {
                return ODBFactory.openClient("localhost", 10028, "odb", "", "");
        }

        public static void commitDB(ODB odb) {
                // String[] fieldNames = {"email"};
                // 
odb.getClassRepresentation(Administrator.class).addUniqueIndexOn("email-uniq", 
fieldNames, true);
                odb.commit();
        }

        public static Boolean optimisticLocking(Date preUpdate, Date update) {
                Boolean b = false;
                if (preUpdate.after(update)) {
                        b = true;
                }
                return b;
        }

        public static Administrator LoadAdministratorByUsername(String 
username) {
                Administrator administrator = null;
                // Logic
                ODB odb = initDB();
                try {
                        IQuery query = new CriteriaQuery(Administrator.class, 
Where.equal("username", username));
                        administrator = (Administrator) 
odb.getObjects(query).getFirst();
                } catch (Exception e) {
                        e.printStackTrace();
                } finally {
                        commitDB(odb);
                }
                return administrator;
        }

        public static Integer CountAdministratorByUsername(String username) {
                Integer count = 0;
                // Logic
                ODB odb = initDB();
                try {
                        IQuery query = new CriteriaQuery(Administrator.class, 
Where.equal("username", username));
                        count = odb.getObjects(query).size();
                } catch (Exception e) {
                        e.printStackTrace();
                } finally {
                        commitDB(odb);
                }
                return count;
        }

        public static Administrator LoadAdministratorByMail(String mail) {
                Administrator administrator = null;
                // Logic
                ODB odb = initDB();
                try {
                        IQuery query = new CriteriaQuery(Administrator.class, 
Where.equal("email", mail));
                        administrator = (Administrator) 
odb.getObjects(query).getFirst();
                } catch (Exception e) {
                        e.printStackTrace();
                } finally {
                        commitDB(odb);
                }
                return administrator;
        }

        public static String RegenerateAdministratorPassword(OID oid) throws 
NoSuchAlgorithmException {
                String password = null;
                // Logic
                ODB odb = initDB();
                Administrator administrator;
                administrator = (Administrator) odb.getObjectFromId(oid);
                String str = 
"kl#ya#j#-SD#S2__08jaSKL#nAs_d12yaa#s#vm--h-l-gopcbyaASDFGBNMCA:-";
                StringBuffer sb = new StringBuffer();
                Random r = new Random();
                int te = 0;
                for (int i = 1; i <= 8; i++) {
                        te = r.nextInt(str.length()); // Spiegelt die Länge von 
str wieder.
                        sb.append(str.charAt(te));
                }
                password = sb.toString();
                administrator.setPassword(password);
                odb.store(administrator);
                commitDB(odb);
                return password;
        }

        public static Administrator GetAdministratorByOID(OID oid) {
                Administrator administrator = null;
                // Logic
                ODB odb = initDB();
                administrator = (Administrator) odb.getObjectFromId(oid);
                commitDB(odb);
                return administrator;
        }

        public static Iterator<Administrator> LoadAdministratorWithLimits(int 
first, int max) {
                ODB odb = initDB();
                IQuery query = new CriteriaQuery(Administrator.class);
                Objects<Administrator> administrators = odb.getObjects(query, 
true, first, max);
                commitDB(odb);
                return administrators.iterator();
        }

        public static int CountAdministrators() {
                ODB odb = initDB();
                IQuery query = new CriteriaQuery(Administrator.class);
                int integer = 0;
                integer = odb.count((CriteriaQuery) query).intValue();
                return integer;
        }

        public static void SaveAdministrator(Administrator a) {
                ODB odb = initDB();
                OID oid = odb.store(a);
                commitDB(odb);
                a.setId(oid);
                a.setSysTimestamp(new Date());
                odb.store(a);
                commitDB(odb);
        }

        public static void DeleteAdministator(OID oid) {
                ODB odb = initDB();
                if (odb.count(new 
CriteriaQuery(Administrator.class)).intValue() > 1) {
                        odb.deleteObjectWithId(oid);
                }
                odb.commit();
        }

        public static void UpdateAdministrator(Administrator a) throws 
NoSuchAlgorithmException, OptimisticLockingException {
                ODB odb = initDB();
                Administrator administrator = (Administrator) 
odb.getObjectFromId(a.getId());
                if (optimisticLocking(administrator.getSysTimestamp(), 
a.getSysTimestamp()) == true) { throw new OptimisticLockingException(); }
                administrator.setEmail(a.getEmail());
                administrator.setFirstname(a.getFirstname());
                administrator.setLastname(a.getLastname());
                administrator.setPassword(a.getPassword(), true);
                
administrator.setQuestionsetCollection(a.getQuestionsetCollection());
                administrator.setSysTimestamp(new Date());
                administrator.setUsername(a.getUsername());
                odb.store(administrator);
                commitDB(odb);
        }

        public static Systemsetting GetLatestSystemsetting() {
                Systemsetting systemsetting = null;
                ODB odb = initDB();
                try {
                        IQuery query = new 
CriteriaQuery(Systemsetting.class).orderByDesc("id");
                        systemsetting = (Systemsetting) 
odb.getObjects(query).getFirst();
                } catch (Exception e) {
                        e.printStackTrace();
                } finally {
                        commitDB(odb);
                }
                return systemsetting;
        }

        public static void SaveSystemsetting(Systemsetting s) {
                ODB odb = initDB();
                OID oid = odb.store(s);
                commitDB(odb);
                s.setId(oid);
                odb.store(s);
                commitDB(odb);
        }

        public static Iterator<Question> LoadQuestionWithLimits(int first, int 
max) {
                ODB odb = initDB();
                IQuery query = new CriteriaQuery(Question.class);
                Objects<Question> questions = odb.getObjects(query, true, 
first, max);
                commitDB(odb);
                return questions.iterator();
        }

        public static int CountQuestions() {
                ODB odb = initDB();
                IQuery query = new CriteriaQuery(Question.class);
                int integer = 0;
                integer = odb.count((CriteriaQuery) query).intValue();
                return integer;
        }

        public static Question GetQuestionByOID(OID oid) {
                Question question = null;
                // Logic
                ODB odb = initDB();
                question = (Question) odb.getObjectFromId(oid);
                commitDB(odb);
                return question;
        }

        public static void SaveQuestion(Question q) {
                ODB odb = initDB();
                OID oid = odb.store(q);
                commitDB(odb);
                q.setId(oid);
                q.setSysTimestamp(new Date());
                odb.store(q);
                commitDB(odb);
        }

        public static void UpdateQuestion(Question q) throws 
OptimisticLockingException {
                ODB odb = initDB();
                Question question = (Question) odb.getObjectFromId(q.getId());
                if (optimisticLocking(question.getSysTimestamp(), 
q.getSysTimestamp()) == true) { throw new OptimisticLockingException(); }
                question.setText(q.getText());
                question.setTitle(q.getTitle());
                question.setTestentityCollection(q.getTestentityCollection());
                question.setTagQuestionAssn(q.getTagQuestionAssn());
                question.setSysTimestamp(new Date());
                odb.store(question);
                commitDB(odb);
        }

        public static void DeleteQuestion(OID id) {
                ODB odb = initDB();
                // if (odb.count(new CriteriaQuery(Question.class)).intValue() 
> 1) {
                odb.deleteObjectWithId(id);
                // }
                odb.commit();
        }

        public static void SaveTagging(Tagging t) {
                ODB odb = initDB();
                OID oid = odb.store(t);
                commitDB(odb);
                t.setId(oid);
                odb.store(t);
                commitDB(odb);
        }

        public static Iterator<Tagging> LoadTagging() {
                ODB odb = initDB();
                IQuery query = new CriteriaQuery(Tagging.class);
                Objects<Tagging> tagging = odb.getObjects(query);
                commitDB(odb);
                return tagging.iterator();
        }

        public static Integer CountTagging(String title) {
                Integer i = null;
                ODB odb = initDB();
                try {
                        IQuery query = new CriteriaQuery(Tagging.class, 
Where.equal("title", title));
                        i = odb.getObjects(query).size();
                } catch (Exception e) {
                        e.printStackTrace();
                } finally {
                        commitDB(odb);
                }
                return i;
        }

        public static void DeleteTagging(OID id) {
                ODB odb = initDB();
                // if (odb.count(new CriteriaQuery(Question.class)).intValue() 
> 1) {
                odb.deleteObjectWithId(id);
                // }
                odb.commit();
        }

}

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to