Hello,

I recently moved some code from a page into a panel, and now my ajax
auto complete component is no longer working because Click isnt adding
the correct *.css and *.js imports now.  Does anyone have any idea
what Im doing wrong?  Here is the code from he original Page, that i
copy/pasted into a new panel.

i guess i could manually add the imports in the new panel, but i would
rather understand whats happening and let Click handle the imports
automatically.

Thanks,
Curt

-----------------------------------------------------------------------------

public class FactPage extends BaseSecurePage {

        private static final long serialVersionUID = 1L;

        @Inject public PostService postService;
        @Inject public TagService tagService;
        @Bindable public Form form = new Form();
        

        @Override
        public void onInit() {

                addModel("form", form);
                
                TextField textField = new TextField("title", 
getMessage("formTitle"), true);
                textField.setMaxLength(120);
                textField.setSize(60);
                form.add(textField);
                
                TextArea textArea = new TextArea("body", 
getMessage("formBody"));
                textArea.setRequired(true);
                textArea.setCols(60);
                textArea.setRows(10);
                form.add(textArea);

                TagsAutoCompleteLookup tags =
                        new TagsAutoCompleteLookup("tagList", 
getMessage("formTaglist"),
true, tagService);
                form.add(tags);
                
               if(getContext().getApplicationMode().equals("development"))
                  form.add(new 
Label("captcha",getMessage("captchaNotRequired")));
               else
                  form.add(new Label("captcha", UtilService.printCaptcha()));

                
                form.add(new Submit("save", "  Save  ", this, "onSaveClick"));
                form.add(new Submit("reset", "  Reset  ", this, 
"onResetClick"));

                super.onInit();
        }

        .....

}


/////////////////////////////////////////////////////////////////////////////////////////////////

public class TagsAutoCompleteLookup extends AutoCompleteTextField {

                private static final long serialVersionUID = 1L;
                //private static Logger logger =
Logger.getLogger(TagsAutoCompleteLookup.class);

                TagService tagService = null;
                
                public TagsAutoCompleteLookup(String name, String title, boolean
required, TagService tagService){
                        super(name, title, required);
                        
                        setSize(60);
                        setMaxLength(Constants.TAG_LIST_LENGTH); //30 chars per 
tag, 10
tags, 9 commas
                        
                        this.tagService = tagService;
                }
                

                public List<String> getAutoCompleteList(String criteria) {
                        String post = criteria;
                        String pre = null;
                        List<String> temp = new ArrayList<String>();
                        List<String> results = new ArrayList<String>();
                        if(criteria != null && criteria.length() >= 1){
                                
                                //clean out any illegal chars
                                criteria = TagServiceImpl.scrubInput(criteria);
                                criteria = TagServiceImpl.formatTags(criteria);
                                
                                if(criteria.indexOf(",") > 0){
                                        pre = criteria.substring(0, 
criteria.lastIndexOf(","));
                                        post = 
criteria.substring(criteria.lastIndexOf(",") + 1);
                                        
                                }
                                
                                //limit to 10 tags or less
                                boolean over10 = false;
                                String[] split = criteria.split(",");
                                if(split != null && split.length > 
Constants.TAG_COUNT)
                                        over10 = true;
                                
                                if(post != null && post.length() >= 1 && over10 
== false)
                                        temp = tagService.findTagsLike(post, 
new Integer(15));
                        }
                        
                        if(criteria.indexOf(",") > 0){
                                for (String string : temp) {
                                        results.add(pre + "," + string);
                                }
                        }else{
                                results = temp;
                        }
                        
                        return results;
            }
                        
                
                @Override
                public void validate() {
                        
                        boolean result = 
TagServiceImpl.isTagListInvalid(getValue());
                                        
                        if(result){
                                
                                if(StringUtils.containsAny(getValue(), 
Constants.INVALID_CHARS));
                                        
form.setError(getMessage("invalidChars"));
                                
                                String split[] = getValue().split(",");
                                if(split.length > Constants.TAG_COUNT)
                                        
form.setError(getMessage("tooManyTags"));
                                        
                                for(int i = 0; i < split.length; i++){
                                        if(split[i].length() > 
Constants.TAG_LENGTH){
                                                
form.setError(getMessage("tooLongTag"));
                                                break;
                                        }       
                                }
                        }

                        super.validate();
                }
}

Reply via email to