/** * LookUp constructor. * * @param name - name of component * @param lookup_page - the page that will provide the lookup values * @param browseImage - the browse image to use. default is a magnifying glass * @param ds - DataStore that is being used with this component * @param tableName - table name to bind to * @param columnName - column name to bind to * @param dataType - data type of the main edit field ( use DataStore.DATATYPE_*) * @param pKey - flag that signifies if the column is a primary key column * @param p - page the component will be associated with */ public HtmlLookUpComponent( String name, String lookup_page, String browseImage, DataStore ds, String tableName, String columnName, int dataType, boolean pKey, HtmlPage p) { super(name, p); _hiddenDescriptionHandle = new HtmlHiddenField("hiddenDescr", null, p); addCompositeComponent(_hiddenDescriptionHandle, DataStore.DATATYPE_STRING, false, null, null); _hiddenKeyHandle = new HtmlHiddenField("hiddenKey", null, p); addCompositeComponent(_hiddenKeyHandle, DataStore.DATATYPE_STRING, false, null, null); _hiddenKeyHandle.setVisible(false); setTheme(null); p.addPageListener(this); HtmlTextEdit edit = null; if (ds == null) { edit = new HtmlTextEdit("_edit", p); _editHandle = addCompositeComponent(edit, dataType, false, null, null); } else { _ds = ds; /** Don't add the same column twice to the data store. */ if (_ds.getColumnIndex(tableName + "." + columnName) == -1) { if (_ds instanceof DataStore) ((DataStore) _ds).addColumn(tableName, columnName, dataType, pKey, true); } edit = new HtmlTextEdit(tableName + "_" + columnName, p); edit.setColumn(_ds, tableName + "." + columnName); _editHandle = addCompositeComponent(edit, dataType, true, tableName, columnName); } _browseImage = new HtmlSubmitImage("browseImage", browseImage, p); _browseImage.addSubmitListener(this); _browseImageHandle = addCompositeComponent(_browseImage, DATATYPE_ANY, false, null, null); _browsePopupImage = new HtmlImage("browsPopupImage", browseImage, p); _browsePopupImageLink = new HtmlLink("browsePopupImageLink", null, p); _browsePopupImageLink.add(_browsePopupImage); _browseImageHandle = addCompositeComponent(_browsePopupImageLink, DATATYPE_ANY, false, null, null); _browsePopupImageLink.setVisible(false); setLookUpPageURL(lookup_page); setDescriptionFont(null); }
/** * This method will generate the html for each component in the page * * @param p - PrintWriter * @param rowNo - rowNo * @throws Exception */ public void generateHTML(PrintWriter p, int rowNo) throws Exception { if (!_visible) { return; } // for each item in list JspCrumbleObject cro = null; HtmlText htText = null; HtmlText separatorText = null; HtmlLink hlLink = null; _cont.removeAll(); int arrSize = _arrCrumble.size(); if (arrSize <= 0) { return; } // MessageLog.writeDebugMessage(" 1 generateHTML arrSize=" + arrSize, this); String croText = null; String croHref = null; for (int i = 0; i < arrSize; i++) { // MessageLog.writeDebugMessage(" 1 generateHTML i=" + i, this); // create a link with text in it cro = (JspCrumbleObject) _arrCrumble.get(i); htText = null; croHref = cro.getHref(); croText = cro.getText(); if (Util.isFilled(croHref)) { htText = new HtmlText(croText, getCrumbleLinkFont(), getPage()); htText.setFixSpecialHtmlCharacters(isFixSpecialHtmlCharacters()); hlLink = new HtmlLink("hlLink" + i, croHref, getPage()); hlLink.add(htText); } else { htText = new HtmlText(croText, getCrumbleFont(), getPage()); htText.setFixSpecialHtmlCharacters(isFixSpecialHtmlCharacters()); } // add link // add : String separator = getSeparator(); if (!Util.isFilled(separator)) { separator = " : "; } separatorText = new HtmlText(separator, getCrumbleLinkFont(), getPage()); separatorText.setFixSpecialHtmlCharacters(isFixSpecialHtmlCharacters()); if (Util.isFilled(croHref)) { _cont.add(hlLink); } else { _cont.add(htText); } if (i < (arrSize - 1)) { _cont.add(separatorText); } } _cont.generateHTML(p, rowNo); }