I'm sorry igor, i didn't mean to post it twice i thought this one wasn't posted as it took 5 hours to appear on the forum so i sent another one. I'm going to delete the other post. as to using a profiler, i'm not really familiar with such a tool but i'll see what i can do.
igor.vaynberg wrote: > > use a profiler. > > -igor > > On Thu, Aug 13, 2009 at 9:10 AM, Mostafa Mohamed<es.most...@gmail.com> > wrote: >> Hi, >> >> We're working on a wicket/spring/hibernate webapp (research >> repository) and today i was working on an 'Add Publication Panel'. i >> added some >> validation today but whenever i click on the link that shows the panel >> in the main content area it takes like 10/15 seconds to show it. >> Tomcat >> doesn't show any errors and everything is working. here's my Add >> Publication Panel. i have no idea as to what could be causing this. >> >> here's my panel's .java >> >> public class AddPublicationPanel extends BasicPanel { >> >> @SpringBean >> private IBrowseService browseService; >> @SpringBean >> private IAddEditService addEditService; >> >> @SpringBean >> private IBook book; >> @SpringBean >> private IConferencePaper conferencePaper; >> @SpringBean >> private ITechnicalReport technicalReport; >> @SpringBean >> private IWorkshop workshop; >> @SpringBean >> private IArticle article; >> @SpringBean >> private IBookChapter bookChapter; >> @SpringBean(name = "book") >> private IPublication publication; >> >> private List<Short> year; >> private List<Byte> month; >> >> private Form form; >> private WebMarkupContainer detailsBook, detailsConferencePaper, >> detailsTechnicalReport, detailsWorkshop, detailsArticle, >> detailsBookChapter, detailsCurrent; >> private AjaxFallbackLink addAuthor, removeAuthor; >> >> private AutoCompleteTextFieldUser[] authors; >> >> public AddPublicationPanel() { >> super("block", "Add Publication"); >> >> initLists(); >> initCommon(); >> initDetails(); >> >> } >> >> private void initCommon() { >> add(new FeedbackPanel("feedback")); >> add(form = new Form("form", new CompoundPropertyModel( >> publication)) { >> protected void onSubmit() { >> switch (publication.getPublicationType()) { >> case BOOK: >> break; >> case BOOK_CHAPTER: >> break; >> case ARTICLE: >> break; >> case CONFERENCE_PAPER: >> break; >> case WORKSHOP: >> break; >> case TECHNICAL_REPORT: >> break; >> } >> } >> }); >> // title >> form.add(new TextField("title").setRequired(true).add( >> StringValidator.maximumLength(128))); >> // year >> form.add(new DropDownChoice("year", year)); >> // month >> form.add(new DropDownChoice("month", month, new ChoiceRenderer() >> { >> @Override >> public Object getDisplayValue(Object object) { >> return (new DateFormatSymbols().getMonths())[((Byte) >> object) >> .intValue()]; >> } >> })); >> // abstractText >> form.add(new TextArea("abstractText").add(StringValidator >> .maximumLength(2048))); // >> required?????????????????????????????? >> // reproducible >> form.add(new CheckBox("reproducible")); >> // passwordProtected >> form.add(new CheckBox("passwordProtected")); >> // keywords >> form.add(new TextField("keywords").add( >> new PatternValidator("(\\s*\\w+\\s*,*\\s*)*,*\\s*")).add( >> StringValidator.maximumLength(2048))); >> >> // authors (internal & external) >> authors = new AutoCompleteTextFieldUser[10]; >> for (int i = 0; i < 10; i++) >> // use model to set authors (internal & external) >> // later***************** >> form.add((authors[i] = new AutoCompleteTextFieldUser("author" >> + i)) >> .setVisible(false).setOutputMarkupId(true) >> .setOutputMarkupPlaceholderTag(true)); >> authors[0].setRequired(true).setVisible(true); >> >> form.add((addAuthor = (new AjaxFallbackLink("add") { >> >> @Override >> public void onClick(AjaxRequestTarget target) { >> >> int pointer; >> for (pointer = 0; pointer < 10; pointer++) { >> if (!authors[pointer].isVisible()) { >> break; >> } >> } >> if (pointer < 10) { >> authors[pointer].setVisible(true); >> if (pointer == 9) >> this.setVisible(false); >> if (pointer > 0) >> removeAuthor.setVisible(true); >> >> if (target != null) { >> target.addComponent(authors[pointer]); >> target.addComponent(removeAuthor); >> target.addComponent(this); >> } >> } >> >> } >> >> })).setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true)); >> form.add((removeAuthor = (new AjaxFallbackLink("remove") { >> >> @Override >> public void onClick(AjaxRequestTarget target) { >> >> int pointer; >> for (pointer = 0; pointer < 10; pointer++) { >> if (!authors[pointer].isVisible()) { >> break; >> } >> } >> pointer--; >> if (pointer > 0) >> authors[pointer].setVisible(false); >> if (pointer == 1) >> this.setVisible(false); >> if (pointer <= 9) >> addAuthor.setVisible(true); >> >> if (target != null) { >> target.addComponent(authors[pointer]); >> target.addComponent(addAuthor); >> target.addComponent(this); >> } >> >> } >> })).setVisible(false).setOutputMarkupId(true) >> .setOutputMarkupPlaceholderTag(true)); >> >> // departments >> form.add(new ListMultipleChoice("departments", >> new LoadableDetachableModel() { >> >> @Override >> protected Object load() { >> >> return browseService.findAllDepartments(); >> } >> >> }, new ChoiceRenderer("name", "id")).setRequired(true)); >> >> // publicationType >> form.add((new DropDownChoice("publicationType", Arrays >> .asList(PublicationType.values()), new ChoiceRenderer( >> "displayName", "id")).setRequired(true)) >> .add(new AjaxFormComponentUpdatingBehavior("onchange") { >> >> @Override >> protected void onUpdate(AjaxRequestTarget target) { >> target.addComponent(detailsArticle); >> target.addComponent(detailsBook); >> target.addComponent(detailsBookChapter); >> target.addComponent(detailsConferencePaper); >> target.addComponent(detailsTechnicalReport); >> target.addComponent(detailsWorkshop); >> >> if (publication.getPublicationType() == null) { >> detailsCurrent.setVisible(false); >> } else { >> if (publication.getPublicationType().getId() >> == 0) { >> replaceDetails(detailsArticle).setModel( >> new >> CompoundPropertyModel(article)); >> publication = article; >> } else { >> if >> (publication.getPublicationType().getId() == 1) { >> replaceDetails(detailsBook).setModel( >> new >> CompoundPropertyModel(book)); >> publication = book; >> } else { >> if (publication.getPublicationType() >> .getId() == 2) { >> >> replaceDetails(detailsBookChapter) >> .setModel( >> new >> CompoundPropertyModel( >> >> bookChapter)); >> publication = bookChapter; >> >> } else { >> if >> (publication.getPublicationType() >> .getId() == 3) { >> replaceDetails( >> >> detailsConferencePaper) >> .setModel( >> new >> CompoundPropertyModel( >> >> conferencePaper)); >> publication = >> conferencePaper; >> >> } else { >> if (publication >> .getPublicationType() >> .getId() == 4) { >> replaceDetails( >> >> detailsTechnicalReport) >> .setModel( >> new >> CompoundPropertyModel( >> >> technicalReport)); >> publication = >> technicalReport; >> >> } else { >> if (publication >> >> .getPublicationType() >> .getId() == 5) { >> replaceDetails( >> >> detailsWorkshop) >> .setModel( >> >> new CompoundPropertyModel( >> >> workshop)); >> publication = >> workshop; >> >> } >> } >> } >> } >> } >> } >> } >> >> } >> })); >> >> // clear button >> form.add((new AjaxFallbackButton("clear", form) { >> @Override >> protected void onSubmit(AjaxRequestTarget target, Form form) >> { >> form.clearInput(); >> >> if (target != null) >> target.addComponent(form); >> } >> }).setDefaultFormProcessing(false)); >> } >> >> private void initDetails() { >> // article >> (detailsArticle = new >> WebMarkupContainer("detailsArticle")).setVisible( >> >> false).setOutputMarkupId(true).setOutputMarkupPlaceholderTag( >> true); >> detailsArticle >> .add( >> new >> TextField("journalName").setRequired(true).add( >> StringValidator.maximumLength(128))) >> .add( >> new >> TextField("volume").add(NumberValidator.range(0, >> Short.MAX_VALUE))) >> .add( >> new >> TextField("issue").add(NumberValidator.range(0, >> Long.MAX_VALUE))) >> .add( >> new TextField("pages") >> .add(StringValidator.maximumLength(64)) >> .add( >> new PatternValidator( >> >> "(\\s*\\d+\\s*((\\s*-\\s*\\d+)?\\s*[,;]?\\s*))*"))); >> >> // book >> (detailsBook = new >> WebMarkupContainer("detailsBook")).setVisible(false) >> >> .setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true); >> detailsBook.add( >> new TextField("ISBN").setRequired(true).add( >> StringValidator.lengthBetween(10, 13))) >> .add( >> new TextField("series").add(StringValidator >> .maximumLength(128))).add( >> new TextField("edition").add(StringValidator >> .maximumLength(64))).add( >> new >> TextField("volume").add(NumberValidator.range(0, >> Short.MAX_VALUE))).add( >> new >> TextField("publisher.name").setRequired(true).add( >> StringValidator.maximumLength(128))).add( >> new >> TextField("publisher.address").add(StringValidator >> .maximumLength(128))); >> >> // book chapter >> (detailsBookChapter = new >> WebMarkupContainer("detailsBookChapter")) >> .setVisible(false).setOutputMarkupId(true) >> .setOutputMarkupPlaceholderTag(true); >> detailsBookChapter >> .add( >> new TextField("bookISBN").setRequired(true).add( >> StringValidator.lengthBetween(10, 13))) >> .add( >> new TextField("bookTitle").setRequired(true).add( >> StringValidator.maximumLength(128))) >> .add( >> new TextField("series").add(StringValidator >> .maximumLength(128))) >> .add( >> new TextField("edition").add(StringValidator >> .maximumLength(64))) >> .add( >> new TextField("volume").add( >> NumberValidator.range(0, 32767)).setType( >> Short.class)) >> .add( >> new TextField("pages") >> .setRequired(true) >> .add(StringValidator.maximumLength(64)) >> .add( >> new PatternValidator( >> >> "(\\s*\\d+\\s*((\\s*-\\s*\\d+)?\\s*[,;]?\\s*))*"))) >> .add( >> new >> TextField("publisher.name").setRequired(true).add( >> StringValidator.maximumLength(128))).add( >> new >> TextField("publisher.address").add(StringValidator >> .maximumLength(128))); >> >> // conference paper >> (detailsConferencePaper = new WebMarkupContainer( >> >> "detailsConferencePaper")).setVisible(false).setOutputMarkupId( >> true).setOutputMarkupPlaceholderTag(true); >> detailsConferencePaper >> .add( >> new >> TextField("conferenceBookTitle").setRequired(true) >> .add(StringValidator.maximumLength(128))) >> .add( >> new >> TextField("conferenceAddress").add(StringValidator >> .maximumLength(128))) >> .add( >> new TextField("pages") >> .add(StringValidator.maximumLength(64)) >> .add( >> new PatternValidator( >> >> "(\\s*\\d+\\s*((\\s*-\\s*\\d+)?\\s*[,;]?\\s*))*"))) >> .add( >> new TextField("editors").add(StringValidator >> .maximumLength(256))).add( >> new TextField("sponsors").add(StringValidator >> .maximumLength(512))).add( >> new >> TextField("publisher.address").add(StringValidator >> .maximumLength(128))).add( >> new >> TextField("publisher.name").setRequired(true).add( >> StringValidator.maximumLength(128))); >> >> // technical report >> (detailsTechnicalReport = new WebMarkupContainer( >> >> "detailsTechnicalReport")).setVisible(false).setOutputMarkupId( >> true).setOutputMarkupPlaceholderTag(true); >> detailsTechnicalReport.add( >> new DropDownChoice("type", >> Arrays.asList(TechnicalReportType >> .values()), new ChoiceRenderer("displayName", >> "id"))) >> .add( >> new >> TextField("institution").setRequired(true).add( >> StringValidator.maximumLength(128))).add( >> new >> TextField("institutionAddress").add(StringValidator >> .maximumLength(128))); >> // setting the default value of the technical report type to >> // PRIMARY_RESEARCH >> technicalReport.setType(TechnicalReportType.PRIMARY_RESEARCH); >> >> // workshop >> (detailsWorkshop = new WebMarkupContainer("detailsWorkshop")) >> .setVisible(false).setOutputMarkupId(true) >> .setOutputMarkupPlaceholderTag(true); >> detailsWorkshop.add( >> new TextField("workshopTitle").setRequired(true).add( >> StringValidator.maximumLength(128))).add( >> new >> TextField("workshopNumber").add(NumberValidator.range(0, >> Long.MAX_VALUE))).add( >> new TextField("workshopAddress").add(StringValidator >> .maximumLength(128))); >> >> detailsCurrent = detailsBook; >> >> >> form.add(detailsArticle).add(detailsBook).add(detailsBookChapter).add( >> detailsConferencePaper).add(detailsConferencePaper).add( >> detailsTechnicalReport).add(detailsWorkshop); >> } >> >> private void initLists() { >> // years >> year = new ArrayList<Short>(); >> for (short i = (short) >> Calendar.getInstance().get(Calendar.YEAR); i >= 1950; i--) { >> year.add(new Short(i)); >> } >> // setting the default value of year to current year >> publication.setYear(new Short((short) Calendar.getInstance().get( >> Calendar.YEAR))); >> >> // months >> month = new ArrayList<Byte>(); >> for (byte i = 0; i < 12; i++) { >> month.add(new Byte((byte) i)); >> } >> } >> >> private Form replaceDetails(WebMarkupContainer replacement) { >> detailsCurrent.setVisible(false); >> (detailsCurrent = replacement).setVisible(true); >> return form; >> } >> } >> > > -- View this message in context: http://www.nabble.com/Performance-Problem-tp24957835p24962138.html Sent from the Wicket - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org