comparison src/main/java/de/mpiwg/itgroup/ismi/entry/beans/ApplicationBean.java @ 157:2522985f44af

add "query builder" button to entityDetails form.
author Robert Casties <casties@mpiwg-berlin.mpg.de>
date Fri, 20 Oct 2017 12:44:15 +0200
parents 62d5276ed785
children
comparison
equal deleted inserted replaced
156:d305a1b3e4c9 157:2522985f44af
1 package de.mpiwg.itgroup.ismi.entry.beans; 1 package de.mpiwg.itgroup.ismi.entry.beans;
2 2
3 import java.io.Serializable; 3 import java.io.Serializable;
4 import java.io.UnsupportedEncodingException;
5 import java.net.URLEncoder;
6 import java.nio.charset.StandardCharsets;
4 import java.util.ArrayList; 7 import java.util.ArrayList;
5 import java.util.Arrays; 8 import java.util.Arrays;
6 import java.util.List; 9 import java.util.List;
7 10
8 import javax.faces.context.FacesContext; 11 import javax.faces.context.FacesContext;
9 import javax.faces.model.SelectItem; 12 import javax.faces.model.SelectItem;
10 import javax.servlet.http.HttpServletRequest; 13 import javax.servlet.http.HttpServletRequest;
11 14
15 import org.apache.commons.codec.binary.Base64;
12 import org.apache.commons.lang.StringUtils; 16 import org.apache.commons.lang.StringUtils;
13 import org.apache.log4j.Logger; 17 import org.apache.log4j.Logger;
14 import org.mpi.openmind.cache.WrapperService; 18 import org.mpi.openmind.cache.WrapperService;
15 import org.mpi.openmind.configuration.ConfigurationService; 19 import org.mpi.openmind.configuration.ConfigurationService;
16 import org.mpi.openmind.repository.bo.Attribute;
17 import org.mpi.openmind.repository.bo.Entity; 20 import org.mpi.openmind.repository.bo.Entity;
18 import org.mpi.openmind.repository.services.ServiceRegistry; 21 import org.mpi.openmind.repository.services.ServiceRegistry;
19 import org.mpi.openmind.search.SearchService; 22 import org.mpi.openmind.search.SearchService;
20 import org.mpi.openmind.security.SecurityService; 23 import org.mpi.openmind.security.SecurityService;
21 24
102 if(StringUtils.isNotEmpty(mode)){ 105 if(StringUtils.isNotEmpty(mode)){
103 sb.append("&mode=" + mode); 106 sb.append("&mode=" + mode);
104 } 107 }
105 108
106 return sb.toString(); 109 return sb.toString();
110 }
111
112 /**
113 * Returns a URL to the configured QueryBrowser webapp with the query set to the given id.
114 *
115 * @param id
116 * @return
117 */
118 public String generateQueryBrowserUrlForId(Long id) {
119 String baseUrl = this.getConfService().getQueryBrowserUrl();
120 // generate id_is query for id
121 String query = String.format("[[\"id_is\",{\"value\":%d}]]", id);
122 try {
123 // encode URL and base64
124 String encquery = URLEncoder.encode(query, StandardCharsets.UTF_8.toString());
125 String b64query = Base64.encodeBase64String(encquery.getBytes());
126 String url = baseUrl + "#" + b64query;
127 return url;
128 } catch (UnsupportedEncodingException e) {
129 // this shouldn't happen
130 logger.error(e);
131 }
132 return null;
107 } 133 }
108 134
109 public static String CURRENT_WITNESS = "CurrentWitness"; 135 public static String CURRENT_WITNESS = "CurrentWitness";
110 public static String CURRENT_CODEX = "CurrentCodex"; 136 public static String CURRENT_CODEX = "CurrentCodex";
111 public static String CURRENT_TEXT = "CurrentText"; 137 public static String CURRENT_TEXT = "CurrentText";