83 lines
2.3 KiB
Java
83 lines
2.3 KiB
Java
package net.sf.jasperreports.engine;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
public class JRHyperlinkHelper {
|
|
public static final String HYPERLINK_TYPE_NONE = "None";
|
|
|
|
public static final String HYPERLINK_TYPE_REFERENCE = "Reference";
|
|
|
|
public static final String HYPERLINK_TYPE_LOCAL_ANCHOR = "LocalAnchor";
|
|
|
|
public static final String HYPERLINK_TYPE_LOCAL_PAGE = "LocalPage";
|
|
|
|
public static final String HYPERLINK_TYPE_REMOTE_ANCHOR = "RemoteAnchor";
|
|
|
|
public static final String HYPERLINK_TYPE_REMOTE_PAGE = "RemotePage";
|
|
|
|
private static final Map builtinTypes = createBuiltinTypes();
|
|
|
|
private static Map createBuiltinTypes() {
|
|
Map types = new HashMap();
|
|
types.put("None", new Byte((byte)1));
|
|
types.put("Reference", new Byte((byte)2));
|
|
types.put("LocalAnchor", new Byte((byte)3));
|
|
types.put("LocalPage", new Byte((byte)4));
|
|
types.put("RemoteAnchor", new Byte((byte)5));
|
|
types.put("RemotePage", new Byte((byte)6));
|
|
return types;
|
|
}
|
|
|
|
public static byte getHyperlinkType(JRHyperlink hyperlink) {
|
|
return getHyperlinkType(hyperlink.getLinkType());
|
|
}
|
|
|
|
public static byte getHyperlinkType(String linkType) {
|
|
byte type;
|
|
if (linkType == null) {
|
|
type = 1;
|
|
} else {
|
|
Byte builtinType = (Byte)builtinTypes.get(linkType);
|
|
if (builtinType == null) {
|
|
type = 7;
|
|
} else {
|
|
type = builtinType.byteValue();
|
|
}
|
|
}
|
|
return type;
|
|
}
|
|
|
|
public static String getLinkType(byte hyperlinkType) {
|
|
String type;
|
|
switch (hyperlinkType) {
|
|
case 0:
|
|
case 1:
|
|
type = null;
|
|
return type;
|
|
case 2:
|
|
type = "Reference";
|
|
return type;
|
|
case 3:
|
|
type = "LocalAnchor";
|
|
return type;
|
|
case 4:
|
|
type = "LocalPage";
|
|
return type;
|
|
case 5:
|
|
type = "RemoteAnchor";
|
|
return type;
|
|
case 6:
|
|
type = "RemotePage";
|
|
return type;
|
|
case 7:
|
|
throw new JRRuntimeException("Custom hyperlink types cannot be specified using the byte constant");
|
|
}
|
|
throw new JRRuntimeException("Unknown hyperlink type " + hyperlinkType);
|
|
}
|
|
|
|
public static boolean isEmpty(JRHyperlink hyperlink) {
|
|
return (hyperlink == null || (hyperlink.getHyperlinkType() == 1 && hyperlink.getHyperlinkTooltipExpression() == null));
|
|
}
|
|
}
|