use of com.servoy.j2db.ui.ILabel in project servoy-client by Servoy.
the class WebBaseSelectBox method setComponentVisible.
/*
* visible---------------------------------------------------
*/
public void setComponentVisible(boolean visible) {
if (viewable || !visible) {
setVisible(visible);
if (labels != null) {
for (int i = 0; i < labels.size(); i++) {
ILabel label = labels.get(i);
label.setComponentVisible(visible);
}
}
}
}
use of com.servoy.j2db.ui.ILabel in project servoy-client by Servoy.
the class WebDataCheckBoxChoice method setComponentEnabled.
public void setComponentEnabled(final boolean b) {
if (accessible || !b) {
super.setEnabled(b);
getStylePropertyChanges().setChanged();
if (labels != null) {
for (int i = 0; i < labels.size(); i++) {
ILabel label = labels.get(i);
label.setComponentEnabled(b);
}
}
}
}
use of com.servoy.j2db.ui.ILabel in project servoy-client by Servoy.
the class WebDataCompositeTextField method setComponentEnabled.
public void setComponentEnabled(final boolean b) {
if (accessible || !b) {
super.setEnabled(b);
field.setEnabled(b);
getStylePropertyChanges().setChanged();
if (labels != null) {
for (int i = 0; i < labels.size(); i++) {
ILabel label = labels.get(i);
label.setComponentEnabled(b);
}
}
}
}
use of com.servoy.j2db.ui.ILabel in project servoy-client by Servoy.
the class WebDataCompositeTextField method setComponentVisible.
/*
* visible---------------------------------------------------
*/
public void setComponentVisible(boolean visible) {
if (viewable || !visible) {
setVisible(visible);
if (labels != null) {
for (int i = 0; i < labels.size(); i++) {
ILabel label = labels.get(i);
label.setComponentVisible(visible);
}
}
}
}
use of com.servoy.j2db.ui.ILabel in project servoy-client by Servoy.
the class StripHTMLTagsConverter method convertBodyText.
/**
* @param bodyText
* @param solution
* @return
*/
@SuppressWarnings("nls")
public static StrippedText convertBodyText(Component component, CharSequence unsanitizedbodyText, boolean trustDataAsHtml, FlattenedSolution solutionRoot) {
CharSequence bodyText = WebBaseButton.sanitize(unsanitizedbodyText, trustDataAsHtml);
StrippedText st = new StrippedText();
if (RequestCycle.get() == null) {
st.setBodyTxt(bodyText);
return st;
}
// $NON-NLS-1$
ResourceReference rr = new ResourceReference("media");
String solutionName = solutionRoot.getSolution().getName();
StringBuilder bodyTxt = new StringBuilder(bodyText.length());
XmlPullParser parser = new XmlPullParser();
ICrypt urlCrypt = null;
if (Application.exists())
urlCrypt = Application.get().getSecuritySettings().getCryptFactory().newCrypt();
try {
// $NON-NLS-1$ //$NON-NLS-2$
parser.parse(new ByteArrayInputStream(bodyText.toString().getBytes("UTF8")), "UTF8");
XmlTag me = (XmlTag) parser.nextTag();
while (me != null) {
CharSequence tmp = parser.getInputFromPositionMarker(me.getPos());
if (tmp.toString().trim().length() > 0)
bodyTxt.append(tmp);
parser.setPositionMarker();
String currentTagName = me.getName().toLowerCase();
if (// $NON-NLS-1$
currentTagName.equals("script")) {
if (!me.isClose()) {
// $NON-NLS-1$
String srcUrl = (String) me.getAttributes().get("src");
// $NON-NLS-1$
if (srcUrl == null)
srcUrl = (String) me.getAttributes().get("SRC");
me = (XmlTag) parser.nextTag();
if (srcUrl != null) {
st.getJavascriptUrls().add(convertMediaReferences(srcUrl, solutionName, rr, "", true).toString());
} else {
if (me != null) {
st.getJavascriptScripts().add(parser.getInputFromPositionMarker(me.getPos()));
parser.setPositionMarker();
}
}
} else {
me = (XmlTag) parser.nextTag();
}
continue;
} else if (currentTagName.equals("style")) {
if (me.isOpen()) {
me = (XmlTag) parser.nextTag();
List<CharSequence> styles = st.getStyles();
String style = parser.getInputFromPositionMarker(me.getPos()).toString().trim();
if (!"".equals(style) && !styles.contains(style)) {
styles.add(convertMediaReferences(style, solutionName, rr, "", false));
}
parser.setPositionMarker();
} else {
me = (XmlTag) parser.nextTag();
}
continue;
} else if (currentTagName.equals("link")) {
if (me.isOpen() || me.isOpenClose()) {
String end = "\n";
if (me.isOpen())
end = "</link>\n";
st.getLinkTags().add(convertMediaReferences(me.toXmlString(null) + end, solutionName, rr, "", false));
}
me = (XmlTag) parser.nextTag();
continue;
}
if (ignoreTags.contains(currentTagName)) {
if (currentTagName.equals("body") && (me.isOpen() || me.isOpenClose())) {
if (me.getAttributes().size() > 0) {
st.addBodyAttributes(me.getAttributes());
}
me = (XmlTag) parser.nextTag();
} else {
me = (XmlTag) parser.nextTag();
}
continue;
}
if (currentTagName.equals("img") && component instanceof ILabel) {
ILabel label = (ILabel) component;
String onload = "Servoy.Utils.setLabelChildHeight('" + component.getMarkupId() + "', " + label.getVerticalAlignment() + ");";
onload = me.getAttributes().containsKey("onload") ? me.getAttributes().getString("onload") + ";" + onload : onload;
me.getAttributes().put("onload", onload);
}
boolean ignoreOnclick = false;
IValueMap attributeMap = me.getAttributes();
// first transfer over the tabindex to anchor tags
if (currentTagName.equals("a")) {
int tabIndex = TabIndexHelper.getTabIndex(component);
if (tabIndex != -1)
attributeMap.put("tabindex", Integer.valueOf(tabIndex));
}
// now they have to be lowercase. (that is a xhtml requirement)
for (String attribute : scanTags) {
// $NON-NLS-1$
if (ignoreOnclick && attribute.equals("onclick"))
continue;
String src = attributeMap.getString(attribute);
if (src == null) {
continue;
}
String lowercase = src.toLowerCase();
if (lowercase.startsWith(MediaURLStreamHandler.MEDIA_URL_DEF)) {
String name = src.substring(MediaURLStreamHandler.MEDIA_URL_DEF.length());
if (name.startsWith(MediaURLStreamHandler.MEDIA_URL_BLOBLOADER)) {
String url = generateBlobloaderUrl(component, urlCrypt, name);
me.getAttributes().put(attribute, url);
} else {
String translatedUrl = MediaURLStreamHandler.getTranslatedMediaURL(solutionRoot, lowercase);
if (translatedUrl != null) {
me.getAttributes().put(attribute, translatedUrl);
}
}
} else if (component instanceof ISupportScriptCallback && lowercase.startsWith("javascript:")) {
String script = src;
if (script.length() > 13) {
String scriptName = script.substring(11);
if ("href".equals(attribute)) {
if (attributeMap.containsKey("externalcall")) {
attributeMap.remove("externalcall");
} else {
me.getAttributes().put("href", "#");
me.getAttributes().put("onclick", ((ISupportScriptCallback) component).getCallBackUrl(scriptName, true));
ignoreOnclick = true;
}
} else {
me.getAttributes().put(attribute, ((ISupportScriptCallback) component).getCallBackUrl(scriptName, "onclick".equals(attribute)));
}
}
} else if (component instanceof FormComponent<?> && lowercase.startsWith("javascript:")) {
String script = src;
if (script.length() > 13) {
String scriptName = script.substring(11);
if ("href".equals(attribute)) {
me.getAttributes().put("href", "#");
me.getAttributes().put("onclick", getTriggerJavaScript((FormComponent<?>) component, scriptName));
ignoreOnclick = true;
} else {
me.getAttributes().put(attribute, getTriggerJavaScript((FormComponent<?>) component, scriptName));
}
}
}
}
bodyTxt.append(me.toString());
me = (XmlTag) parser.nextTag();
}
bodyTxt.append(parser.getInputFromPositionMarker(-1));
// $NON-NLS-1$
st.setBodyTxt(convertMediaReferences(convertBlobLoaderReferences(bodyTxt, component), solutionName, rr, "", false));
} catch (ParseException ex) {
Debug.error(ex);
// $NON-NLS-1$
bodyTxt.append("<span style=\"color : #ff0000;\">");
bodyTxt.append(HCUtils.sanitize(ex.getMessage()));
bodyTxt.append(bodyText.subSequence(ex.getErrorOffset(), Math.min(ex.getErrorOffset() + 100, bodyText.length())));
// $NON-NLS-1$
bodyTxt.append("</span></body></html>");
st.setBodyTxt(bodyTxt);
} catch (Exception ex) {
Debug.error(ex);
// $NON-NLS-1$
bodyTxt.append("<span style=\"color : #ff0000;\">");
bodyTxt.append(HCUtils.sanitize(ex.getMessage()));
// $NON-NLS-1$
bodyTxt.append("</span></body></html>");
st.setBodyTxt(bodyTxt);
}
return st;
}
Aggregations