content: // This file is part of AceWiki.
  // Copyright 2008-2013, AceWiki developers.
  // 
  // AceWiki is free software: you can redistribute it and/or modify it under the terms of the GNU
  // Lesser General Public License as published by the Free Software Foundation, either version 3 of
  // the License, or (at your option) any later version.
  // 
  // AceWiki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
  // even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  // Lesser General Public License for more details.
  // 
  // You should have received a copy of the GNU Lesser General Public License along with AceWiki. If
  // not, see http://www.gnu.org/licenses/.
  
  package ch.uzh.ifi.attempto.acewiki.gui;
  
  import nextapp.echo.app.Insets;
  import nextapp.echo.app.Row;
  import nextapp.echo.app.event.ActionEvent;
  import nextapp.echo.app.event.ActionListener;
  import ch.uzh.ifi.attempto.acewiki.Wiki;
  import ch.uzh.ifi.attempto.acewiki.core.AceWikiEngine;
  import ch.uzh.ifi.attempto.acewiki.core.LanguageUtils;
  import ch.uzh.ifi.attempto.acewiki.core.Sentence;
  import ch.uzh.ifi.attempto.echocomp.HSpace;
  import ch.uzh.ifi.attempto.echocomp.Label;
  import ch.uzh.ifi.attempto.echocomp.SmallButton;
  import ch.uzh.ifi.attempto.echocomp.VSpace;
  
  public class TranslationsPage extends SentencePage implements ActionListener {
  
  	private static final long serialVersionUID = 8682814239383999827L;
  
  	public TranslationsPage(Wiki wiki, Sentence sentence) {
  		super(sentence, wiki);
  	}
  
  	protected void doUpdate() {
  		removeAll();
  
  		setTabRow(TabRow.getSentenceTabRow(sentence, TabRow.TAB_TRANSLATIONS, getWiki()));
  
  		String t = LanguageUtils.getPrettyPrinted(sentence.getText(getWiki().getLanguage()));
  		String p = "- " + Wiki.getGUIText("acewiki_page_translations");
  		add(new Title(t, p));
  		addHorizontalLine();
  		add(new VSpace(15));
  
  		AceWikiEngine e = getWiki().getEngine();
  		for (String l : e.getLanguages()) {
  			// Uncomment to hide current language:
  			//if (l.equals(getWiki().getLanguage())) continue;
  			addHeadline(e.getLanguageHandler(l).getLanguageName());
  			Row r = new Row();
  			r.setInsets(new Insets(10, 5, 5, 5));
  			r.add(new Label(sentence.getText(l)));
  			int a = sentence.getTextContainer(l).size();
  			if (a > 1) {
  				// The sentence has more than one alternative
  				r.add(new HSpace(10));
  				String s = Wiki.getGUIText("acewiki_statement_alternatives");
  				SmallButton b = new SmallButton("(" + a + " " + s + ")", this);
  				b.setActionCommand(l);
  				r.add(b);
  			}
  			add(r);
  		}
  	}
  
  	public void actionPerformed(ActionEvent e) {
  		Object src = e.getSource();
  
  		if (src instanceof SmallButton) {
  			String lang = ((SmallButton) src).getActionCommand();
  			getWiki().showWindow(new AlternativesWindow(sentence, lang, getWiki()));
  		}
  	}
  
  	@Override
  	public boolean equals(Object obj) {
  		if (obj instanceof TranslationsPage) {
  			return sentence == ((TranslationsPage) obj).sentence;
  		}
  		return false;
  	}
  }
  