X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2Fcache%2FJvCacheableInputBox.java;h=3d0daed971ba09814fe63a8497bb0b88c7f4186f;hb=937444414f2ff7d48f6ea8505144c2695d495e8c;hp=06302c375fb7cb9c6101b24819ec3547367f791e;hpb=a3092a461be828656c8d3665a6fdb1234012afa2;p=jalview.git
diff --git a/src/jalview/io/cache/JvCacheableInputBox.java b/src/jalview/io/cache/JvCacheableInputBox.java
index 06302c3..3d0daed 100644
--- a/src/jalview/io/cache/JvCacheableInputBox.java
+++ b/src/jalview/io/cache/JvCacheableInputBox.java
@@ -1,3 +1,23 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see .
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.io.cache;
import jalview.bin.Cache;
@@ -7,6 +27,7 @@ import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -33,7 +54,7 @@ public class JvCacheableInputBox extends JComboBox
private static final int INPUT_LIMIT = 2;
- private static final int LEFT_BOARDER_WIDTH = 2;
+ private static final int LEFT_BOARDER_WIDTH = 16;
private String cacheKey;
@@ -54,7 +75,8 @@ public class JvCacheableInputBox extends JComboBox
super();
this.cacheKey = newCacheKey;
setEditable(true);
- setPrototypeDisplayValue("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
+ setPrototypeDisplayValue(
+ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
appCache = AppCache.getInstance();
initCachePopupMenu();
initCache(newCacheKey);
@@ -76,11 +98,11 @@ public class JvCacheableInputBox extends JComboBox
return;
}
// convert delimited cache items to a list of strings
- List persistedCacheItems = Arrays.asList(delimitedCacheStr
- .split(AppCache.CACHE_DELIMITER));
+ List persistedCacheItems = Arrays
+ .asList(delimitedCacheStr.split(AppCache.CACHE_DELIMITER));
LinkedHashSet foundCacheItems = appCache
- .getAllCachedItemsFor(cacheKey);// cacheItems.get(cacheKey);
+ .getAllCachedItemsFor(cacheKey);
if (foundCacheItems == null)
{
foundCacheItems = new LinkedHashSet();
@@ -100,11 +122,13 @@ public class JvCacheableInputBox extends JComboBox
{
pnlDefaultCache.setBackground(Color.WHITE);
// pad panel so as to align with other menu items
- pnlDefaultCache.setBorder(BorderFactory.createEmptyBorder(0,
- LEFT_BOARDER_WIDTH, 0, 0));
+ pnlDefaultCache.setBorder(
+ BorderFactory.createEmptyBorder(0, LEFT_BOARDER_WIDTH, 0, 0));
txtDefaultCacheSize.setPreferredSize(new Dimension(45, 20));
- lblDefaultCacheSize.setText(MessageManager
- .getString("label.default_cache_size"));
+ txtDefaultCacheSize.setFont(new java.awt.Font("Verdana", 0, 12));
+ lblDefaultCacheSize
+ .setText(MessageManager.getString("label.default_cache_size"));
+ lblDefaultCacheSize.setFont(new java.awt.Font("Verdana", 0, 12));
// Force input to accept only Integer entries up to length - INPUT_LIMIT
txtDefaultCacheSize.setDocument(new PlainDocument()
{
@@ -120,11 +144,26 @@ public class JvCacheableInputBox extends JComboBox
}
}
});
+ txtDefaultCacheSize.addKeyListener(new java.awt.event.KeyAdapter()
+ {
+ @Override
+ public void keyPressed(KeyEvent e)
+ {
+ if (e.getKeyCode() == KeyEvent.VK_ENTER)
+ {
+ e.consume();
+ updateCache();
+ closePopup();
+ }
+ }
+ });
+
txtDefaultCacheSize.setText(appCache.getCacheLimit(cacheKey));
pnlDefaultCache.add(lblDefaultCacheSize);
+ menuItemClearCache.setFont(new java.awt.Font("Verdana", 0, 12));
pnlDefaultCache.add(txtDefaultCacheSize);
- menuItemClearCache.setText(MessageManager
- .getString("action.clear_cached_items"));
+ menuItemClearCache
+ .setText(MessageManager.getString("action.clear_cached_items"));
menuItemClearCache.addActionListener(new ActionListener()
{
@Override
@@ -143,6 +182,12 @@ public class JvCacheableInputBox extends JComboBox
add(popup);
}
+ private void closePopup()
+ {
+ popup.setVisible(false);
+ popup.transferFocus();
+ }
+
/**
* Answers true if input text is an integer
*
@@ -171,9 +216,9 @@ public class JvCacheableInputBox extends JComboBox
@Override
public void run()
{
- int userLimit = txtDefaultCacheSize.getText().trim().isEmpty() ? Integer
- .valueOf(AppCache.DEFAULT_LIMIT) : Integer
- .valueOf(txtDefaultCacheSize.getText());
+ int userLimit = txtDefaultCacheSize.getText().trim().isEmpty()
+ ? Integer.valueOf(AppCache.DEFAULT_LIMIT)
+ : Integer.valueOf(txtDefaultCacheSize.getText());
int cacheLimit = appCache.updateCacheLimit(cacheKey, userLimit);
String userInput = getUserInput();
if (userInput != null && !userInput.isEmpty())
@@ -235,7 +280,6 @@ public class JvCacheableInputBox extends JComboBox
});
}
-
/**
* This method should be called to persist the in-memory cache when this
* components parent frame is closed / exited
@@ -243,9 +287,9 @@ public class JvCacheableInputBox extends JComboBox
public void persistCache()
{
appCache.persistCache(cacheKey);
- int userLimit = txtDefaultCacheSize.getText().trim().isEmpty() ? Integer
- .valueOf(AppCache.DEFAULT_LIMIT) : Integer
- .valueOf(txtDefaultCacheSize.getText());
+ int userLimit = txtDefaultCacheSize.getText().trim().isEmpty()
+ ? Integer.valueOf(AppCache.DEFAULT_LIMIT)
+ : Integer.valueOf(txtDefaultCacheSize.getText());
appCache.updateCacheLimit(cacheKey, userLimit);
}
@@ -256,8 +300,8 @@ public class JvCacheableInputBox extends JComboBox
*/
public String getUserInput()
{
- return getEditor().getItem() == null ? "" : getEditor().getItem()
- .toString().trim();
+ return getEditor().getItem() == null ? ""
+ : getEditor().getItem().toString().trim();
}
}