001 // This file is part of AceWiki. 002 // Copyright 2008-2012, AceWiki developers. 003 // 004 // AceWiki is free software: you can redistribute it and/or modify it under the terms of the GNU 005 // Lesser General Public License as published by the Free Software Foundation, either version 3 of 006 // the License, or (at your option) any later version. 007 // 008 // AceWiki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 009 // even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 010 // Lesser General Public License for more details. 011 // 012 // You should have received a copy of the GNU Lesser General Public License along with AceWiki. If 013 // not, see http://www.gnu.org/licenses/. 014 015 package ch.uzh.ifi.attempto.acewiki.gui; 016 017 import ch.uzh.ifi.attempto.echocomp.SolidLabel; 018 import nextapp.echo.app.Border; 019 import nextapp.echo.app.Color; 020 import nextapp.echo.app.Column; 021 import nextapp.echo.app.Font; 022 import nextapp.echo.app.Grid; 023 import nextapp.echo.app.Insets; 024 025 /** 026 * This class represents a graphical table that displays simple name/value pairs. 027 * 028 * @author Tobias Kuhn 029 */ 030 public class NameValueTable extends Column { 031 032 private static final long serialVersionUID = -5329037871133296963L; 033 034 private Grid grid; 035 036 /** 037 * Creates a new table. 038 */ 039 public NameValueTable() { 040 grid = new Grid(2); 041 grid.setInsets(new Insets(5, 1, 20, 2)); 042 grid.setBorder(new Border(1, Color.DARKGRAY, Border.STYLE_SOLID)); 043 grid.setBackground(new Color(240, 240, 240)); 044 add(grid); 045 } 046 047 /** 048 * Adds the name/value pair to the table. The value is displayed in italics. 049 * 050 * @param name The name. 051 * @param value The value. 052 */ 053 public void addEntry(String name, String value) { 054 grid.add(new SolidLabel(name, Font.ITALIC + Font.BOLD, 11)); 055 grid.add(new SolidLabel(value, Font.ITALIC)); 056 } 057 058 /** 059 * Adds the name/value pair to the table. The value is supposed to be an ACE phrase and is for 060 * that reason displayed in normal font (non-italics). 061 * 062 * @param name The name. 063 * @param aceValue The ACE phrase as value. 064 */ 065 public void addACEEntry(String name, String aceValue) { 066 grid.add(new SolidLabel(name, Font.ITALIC + Font.BOLD, 11)); 067 grid.add(new SolidLabel(aceValue)); 068 } 069 070 /** 071 * Removes all entries. 072 */ 073 public void clear() { 074 grid.removeAll(); 075 } 076 077 }