fixes and prepare for demo
This commit is contained in:
		
							parent
							
								
									b18febb75f
								
							
						
					
					
						commit
						9e34312ef3
					
				
					 7 changed files with 49 additions and 30 deletions
				
			
		|  | @ -11,4 +11,13 @@ | |||
|     <Match> | ||||
|         <Package name="ch.ethz.seb.sebserver.webservice.datalayer.batis.model"/> | ||||
|     </Match> | ||||
|     <Match> | ||||
|       <Class name="ch.ethz.seb.sebserver.gbl.api.ExamAPIDiscovery" /> | ||||
|       <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD" /> | ||||
|     </Match> | ||||
|     <Match> | ||||
|       <Class name="ch.ethz.seb.sebserver.gui.widget.*" /> | ||||
|       <Bug pattern="SE_BAD_FIELD" /> | ||||
|     </Match> | ||||
| 
 | ||||
| </FindBugsFilter> | ||||
|  | @ -8,8 +8,6 @@ | |||
| 
 | ||||
| package ch.ethz.seb.sebserver.gbl.api; | ||||
| 
 | ||||
| import java.io.UnsupportedEncodingException; | ||||
| import java.net.URLDecoder; | ||||
| import java.nio.CharBuffer; | ||||
| import java.util.Arrays; | ||||
| import java.util.Collections; | ||||
|  | @ -48,22 +46,13 @@ public class POSTMapper { | |||
|     } | ||||
| 
 | ||||
|     public String getString(final String name) { | ||||
|         final String first = this.params.getFirst(name); | ||||
|         if (StringUtils.isNotBlank(first)) { | ||||
|             try { | ||||
|                 return URLDecoder.decode(first, "UTF-8"); | ||||
|             } catch (final UnsupportedEncodingException e) { | ||||
|                 log.warn("Failed to decode form URL formatted string value: ", e); | ||||
|                 return first; | ||||
|             } | ||||
|         } | ||||
|         return first; | ||||
|         return Utils.decodeFormURL_UTF_8(this.params.getFirst(name)); | ||||
|     } | ||||
| 
 | ||||
|     public char[] getCharArray(final String name) { | ||||
|         final String value = getString(name); | ||||
|         if (value == null || value.length() <= 0) { | ||||
|             return null; | ||||
|             return new char[] {}; | ||||
|         } | ||||
| 
 | ||||
|         return value.toCharArray(); | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ | |||
| 
 | ||||
| package ch.ethz.seb.sebserver.gbl.util; | ||||
| 
 | ||||
| import java.io.UnsupportedEncodingException; | ||||
| import java.net.URLDecoder; | ||||
| import java.net.URLEncoder; | ||||
| import java.nio.ByteBuffer; | ||||
| import java.nio.CharBuffer; | ||||
|  | @ -27,8 +27,6 @@ import java.util.stream.Collectors; | |||
| 
 | ||||
| import org.apache.commons.lang3.StringUtils; | ||||
| import org.joda.time.DateTime; | ||||
| import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
| 
 | ||||
| import com.fasterxml.jackson.core.JsonProcessingException; | ||||
| import com.fasterxml.jackson.databind.ObjectMapper; | ||||
|  | @ -37,8 +35,6 @@ import ch.ethz.seb.sebserver.gbl.Constants; | |||
| 
 | ||||
| public final class Utils { | ||||
| 
 | ||||
|     private static final Logger log = LoggerFactory.getLogger(Utils.class); | ||||
| 
 | ||||
|     /** This Collector can be used within stream collect to get one expected singleton element from | ||||
|      * the given Stream. | ||||
|      * This first collects the given Stream to a list and then check if there is one expected element. | ||||
|  | @ -211,12 +207,23 @@ public final class Utils { | |||
|     } | ||||
| 
 | ||||
|     public static final String encodeFormURL_UTF_8(final String value) { | ||||
|         try { | ||||
|             return URLEncoder.encode(value, StandardCharsets.UTF_8.name()); | ||||
|         } catch (final UnsupportedEncodingException e) { | ||||
|             log.error("Unexpected error while trying to encode to from URL UTF-8: ", e); | ||||
|         if (StringUtils.isBlank(value)) { | ||||
|             return value; | ||||
|         } | ||||
| 
 | ||||
|         return URLEncoder.encode(value, StandardCharsets.UTF_8); | ||||
|     } | ||||
| 
 | ||||
|     public static final String decodeFormURL_UTF_8(final String value) { | ||||
|         if (StringUtils.isBlank(value)) { | ||||
|             return value; | ||||
|         } | ||||
| 
 | ||||
|         return URLDecoder.decode( | ||||
|                 (value.indexOf('+') >= 0) | ||||
|                         ? value.replaceAll("\\+", "%2b") | ||||
|                         : value, | ||||
|                 StandardCharsets.UTF_8); | ||||
|     } | ||||
| 
 | ||||
|     public static void clearCharArray(final char[] array) { | ||||
|  |  | |||
|  | @ -241,11 +241,12 @@ public abstract class RestCall<T> { | |||
|         } | ||||
| 
 | ||||
|         public RestCallBuilder withFormParam(final String name, final String value) { | ||||
|             final String encodedVal = Utils.encodeFormURL_UTF_8(value); | ||||
|             if (StringUtils.isBlank(this.body)) { | ||||
|                 this.body = name + Constants.FORM_URL_ENCODED_NAME_VALUE_SEPARATOR + value; | ||||
|                 this.body = name + Constants.FORM_URL_ENCODED_NAME_VALUE_SEPARATOR + encodedVal; | ||||
|             } else { | ||||
|                 this.body = this.body + Constants.FORM_URL_ENCODED_SEPARATOR + name + | ||||
|                         Constants.FORM_URL_ENCODED_NAME_VALUE_SEPARATOR + value; | ||||
|                         Constants.FORM_URL_ENCODED_NAME_VALUE_SEPARATOR + encodedVal; | ||||
|             } | ||||
| 
 | ||||
|             return this; | ||||
|  |  | |||
|  | @ -353,9 +353,14 @@ public class EntityTable<ROW extends Entity> { | |||
| 
 | ||||
|     private void adaptColumnWidth(final Event event) { | ||||
|         try { | ||||
|             final int currentTableWidth = this.table.getParent().getClientArea().width; | ||||
|             int index = 0; | ||||
|             int currentTableWidth = this.table.getParent().getClientArea().width; | ||||
|             // If we have all columns with filter we need some more space for the | ||||
|             // filter actions in the right hand side. This tweak gives enough space for that | ||||
|             if (this.filter != null && this.columns.size() == this.filter.size()) { | ||||
|                 currentTableWidth -= 60; | ||||
|             } | ||||
| 
 | ||||
|             // The proportion size, the sum of all given proportion values | ||||
|             final int pSize = this.columns | ||||
|                     .stream() | ||||
|                     .filter(c -> c.getWidthProportion() > 0) | ||||
|  | @ -363,14 +368,18 @@ public class EntityTable<ROW extends Entity> { | |||
|                             (acc, c) -> acc + c.getWidthProportion(), | ||||
|                             (acc1, acc2) -> acc1 + acc2); | ||||
| 
 | ||||
|             final int columnSize = (pSize > 0) | ||||
|             // The unit size either with proportion or for a entire column if all columns are equal in size | ||||
|             final int columnUnitSize = (pSize > 0) | ||||
|                     ? currentTableWidth / pSize | ||||
|                     : currentTableWidth / this.columns.size(); | ||||
| 
 | ||||
|             // Apply the column width for each column | ||||
|             int index = 0; | ||||
|             for (final ColumnDefinition<ROW> column : this.columns) { | ||||
| 
 | ||||
|                 final TableColumn tableColumn = this.table.getColumn(index); | ||||
|                 final int newWidth = (pSize > 0) ? columnSize * column.getWidthProportion() : columnSize; | ||||
|                 final int newWidth = (pSize > 0) | ||||
|                         ? columnUnitSize * column.getWidthProportion() | ||||
|                         : columnUnitSize; | ||||
|                 tableColumn.setWidth(newWidth); | ||||
|                 if (this.filter != null) { | ||||
|                     this.filter.adaptColumnWidth(this.table.indexOf(tableColumn), newWidth); | ||||
|  |  | |||
|  | @ -61,6 +61,10 @@ public class TableFilter<ROW extends Entity> { | |||
|         buildComponents(); | ||||
|     } | ||||
| 
 | ||||
|     public int size() { | ||||
|         return this.components.size(); | ||||
|     } | ||||
| 
 | ||||
|     public MultiValueMap<String, String> getFilterParameter() { | ||||
|         return this.components | ||||
|                 .stream() | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| INSERT IGNORE INTO institution VALUES | ||||
|     (1, 'ETH Züich', 'ethz', null, null, 1), | ||||
|     (1, 'ETH Zürich', 'ethz', null, null, 1), | ||||
|     (2, 'Institution 2', 'inst2', null, null, 1), | ||||
|     (3, 'Institution 3', 'inst3', null, null, 0), | ||||
|     (4, 'Institution 4', 'inst4', null, null, 0), | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 anhefti
						anhefti