From: Astrid S. <ast...@us...> - 2008-10-17 18:37:31
|
Update of /cvsroot/arianne/stendhal/src/games/stendhal/client/gui In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv17709/src/games/stendhal/client/gui Modified Files: ChatTextController.java StendhalChatLineListener.java j2DClient.java Added Files: ChatCompletionHelper.java Log Message: tearing j2dclient into its parts Index: ChatTextController.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/ChatTextController.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ChatTextController.java 16 Oct 2008 13:10:31 -0000 1.2 --- ChatTextController.java 17 Oct 2008 18:37:19 -0000 1.3 *************** *** 2,17 **** import java.awt.Component; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import javax.swing.JTextField; public class ChatTextController { ! private JTextField playerChatText = new JTextField(""); public ChatTextController() { playerChatText.setFocusTraversalKeysEnabled(false); playerChatText.addKeyListener(new ChatTextKeyListener()); ! } --- 2,26 ---- + import games.stendhal.client.stendhal; + import java.awt.Component; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; + import java.awt.event.KeyEvent; + import java.awt.event.KeyListener; import javax.swing.JTextField; public class ChatTextController { ! private static final String CHAT_LOG_FILE = System.getProperty("user.home") ! + "/" + stendhal.STENDHAL_FOLDER + "chat.log"; ! private final JTextField playerChatText = new JTextField(""); ! private ChatCache cache; public ChatTextController() { playerChatText.setFocusTraversalKeysEnabled(false); playerChatText.addKeyListener(new ChatTextKeyListener()); ! cache = new ChatCache(CHAT_LOG_FILE); ! cache.loadChatCache(); ! setCache(cache); } *************** *** 28,31 **** --- 37,58 ---- class ChatTextKeyListener extends KeyAdapter { + public void keyPressed(final KeyEvent e) { + final int keypressed = e.getKeyCode(); + + if (e.isShiftDown()) { + if (keypressed == KeyEvent.VK_UP) { + if (cache.hasPrevious()) { + setChatLine(cache.current()); + cache.previous(); + } + + } else if (keypressed == KeyEvent.VK_DOWN) { + if (cache.hasNext()) { + setChatLine(cache.next()); + } + } + + } + }; *************** *** 37,43 **** --- 64,92 ---- } + + public void addKeyListener(final KeyListener l) { + playerChatText.addKeyListener(l); + } + public String getText() { return playerChatText.getText(); } + + public void setCache(final ChatCache cache) { + this.cache = cache; + + } + + public void clearLine() { + cache.addlinetoCache(getText()); + + setChatLine(""); + + } + + public void saveCache() { + cache.save(); + + } } Index: StendhalChatLineListener.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/StendhalChatLineListener.java,v retrieving revision 1.70 retrieving revision 1.71 diff -C2 -d -r1.70 -r1.71 *** StendhalChatLineListener.java 16 Oct 2008 13:10:31 -0000 1.70 --- StendhalChatLineListener.java 17 Oct 2008 18:37:19 -0000 1.71 *************** *** 1,81 **** package games.stendhal.client.gui; - import games.stendhal.client.stendhal; import games.stendhal.client.scripting.ChatLineParser; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; - import java.awt.event.KeyAdapter; - import java.awt.event.KeyEvent; - import java.util.Vector; - import org.apache.log4j.Logger; public class StendhalChatLineListener implements ActionListener { - - - KeyAdapter keylistener = new KeyAdapter() { - public void keyPressed(final KeyEvent e) { - final int keypressed = e.getKeyCode(); - - if (e.isShiftDown()) { - if (keypressed == KeyEvent.VK_UP) { - if (cache.hasPrevious()) { - chatController.setChatLine(cache.current()); - cache.previous(); - } - - } else if (keypressed == KeyEvent.VK_DOWN) { - if (cache.hasNext()) { - chatController.setChatLine(cache.next()); - } - } - - } - - if (keypressed == KeyEvent.VK_TAB) { - final String[] strwords = chatController.getText().split("\\s+"); - - for (int i = 0; i < playersonline.size(); i++) { - if (playersonline.elementAt(i).startsWith( - strwords[strwords.length - 1])) { - String output = ""; - for (int j = 0; j < strwords.length - 1; j++) { - output = output + strwords[j] + " "; - } - output = output + playersonline.elementAt(i) + " "; - - chatController.setChatLine(output); - } - } - } - } - - }; - private static final String CHAT_LOG_FILE = System.getProperty("user.home") - + "/" + stendhal.STENDHAL_FOLDER + "chat.log"; - ChatCache cache; /** the logger instance. */ ! static final Logger logger = Logger.getLogger(StendhalChatLineListener.class); - //private final JTextField playerChatText; - - private final Vector<String> playersonline; ! private final ChatTextController chatController; ! public StendhalChatLineListener(final ChatTextController chatText, ! final Vector<String> onlineplayers) { super(); this.chatController = chatText; ! chatController.addActionListener(this); ! chatController.getPlayerChatText().addKeyListener(keylistener); ! ! playersonline = onlineplayers; ! cache = new ChatCache(CHAT_LOG_FILE); ! cache.loadChatCache(); } --- 1,26 ---- package games.stendhal.client.gui; import games.stendhal.client.scripting.ChatLineParser; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import org.apache.log4j.Logger; public class StendhalChatLineListener implements ActionListener { /** the logger instance. */ ! static final Logger logger = Logger ! .getLogger(StendhalChatLineListener.class); ! final ChatTextController chatController; ! public StendhalChatLineListener(final ChatTextController chatText) { super(); this.chatController = chatText; ! ! } *************** *** 86,98 **** if (ChatLineParser.parseAndHandle(text)) { ! cache.addlinetoCache(text); ! ! chatController.setChatLine(""); } } ! public void save() { ! cache.save(); ! ! } } --- 31,39 ---- if (ChatLineParser.parseAndHandle(text)) { ! chatController.clearLine(); ! } } ! } --- NEW FILE: ChatCompletionHelper.java --- /** * */ package games.stendhal.client.gui; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.util.Vector; final class ChatCompletionHelper extends KeyAdapter { private final ChatTextController chatController; private final Vector<String> playersonline; /** * @param chatTextController TODO * @param onlineplayers TODO */ ChatCompletionHelper(final ChatTextController chatTextController, final Vector<String> onlineplayers) { this.chatController = chatTextController; this.playersonline = onlineplayers; } public void keyPressed(final KeyEvent e) { final int keypressed = e.getKeyCode(); if (keypressed == KeyEvent.VK_TAB) { final String[] strwords = chatController.getText() .split("\\s+"); for (int i = 0; i < playersonline.size(); i++) { if (playersonline.elementAt(i).startsWith( strwords[strwords.length - 1])) { String output = ""; for (int j = 0; j < strwords.length - 1; j++) { output = output + strwords[j] + " "; } output = output + playersonline.elementAt(i) + " "; chatController.setChatLine(output); } } } } } Index: j2DClient.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2DClient.java,v retrieving revision 1.254 retrieving revision 1.255 diff -C2 -d -r1.254 -r1.255 *** j2DClient.java 16 Oct 2008 13:10:31 -0000 1.254 --- j2DClient.java 17 Oct 2008 18:37:19 -0000 1.255 *************** *** 56,59 **** --- 56,60 ---- import java.awt.event.FocusEvent; import java.awt.event.FocusListener; + import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; *************** *** 208,213 **** ! chatListener = new StendhalChatLineListener(chatText, client.whoplayers); ! content.add(chatText.getPlayerChatText()); --- 209,217 ---- ! chatListener = new StendhalChatLineListener(chatText); ! ! chatText.addActionListener(chatListener); ! KeyAdapter tabcompletion = new ChatCompletionHelper(chatText, client.whoplayers); ! chatText.addKeyListener(tabcompletion); content.add(chatText.getPlayerChatText()); *************** *** 323,327 **** // add a key input system (defined below) to our canvas so we can // respond to key pressed ! chatText.getPlayerChatText().addKeyListener(keyListener); //canvas.addKeyListener(keyListener); --- 327,331 ---- // add a key input system (defined below) to our canvas so we can // respond to key pressed ! chatText.addKeyListener(keyListener); //canvas.addKeyListener(keyListener); *************** *** 410,414 **** public void cleanup() { ! chatListener.save(); logger.debug("Exit"); System.exit(0); --- 414,418 ---- public void cleanup() { ! chatText.saveCache(); logger.debug("Exit"); System.exit(0); |