[Title] fix table search bug in logview
authorhyunsik.noh <hyunsik.noh@samsung.com>
Mon, 19 Dec 2011 04:30:58 +0000 (13:30 +0900)
committerhyunsik.noh <hyunsik.noh@samsung.com>
Mon, 19 Dec 2011 04:30:58 +0000 (13:30 +0900)
[Type] Enhancement
[Module] common
[Priority] Major

com.samsung.tizen.common.connection/src/com/samsung/tizen/common/connection/log/LogPanel.java
com.samsung.tizen.common.connection/src/com/samsung/tizen/common/connection/log/LogTab.java

index d38ff1e..2f9a12c 100644 (file)
@@ -348,10 +348,13 @@ public class LogPanel extends Panel implements IDeviceChangeListener {
 
                        @Override
                        public void modifyText(ModifyEvent e) {
-                               int index = combo.getSelectionIndex();
-                               if (index != -1) {
-                                       tab.tableRefill(index, filterText.getText());
-                               }
+                                 if(filterText.getText() != null)
+                                 {
+                                         int index = combo.getSelectionIndex();
+                                         if (index != -1) {
+                                                       tab.tableRefill(index, filterText.getText());
+                                               }
+                                 }
                        }
                });
 
index 351bb8f..61b0a85 100644 (file)
@@ -50,10 +50,11 @@ public class LogTab {
 
        private static final int STRING_BUFFER_LENGTH = 10000;
 
-        public static final int FILTER_NONE = 0x0;
-        public static final int FILTER_PID = 0x1;
-        public static final int FILTER_TAG = 0x2;
-        public static final int FILTER_MSG = 0x4;
+       public static final int FILTER_NONE = -1;
+       public static final int FILTER_PID = 0x0;
+       public static final int FILTER_TAG = 0x1;
+       public static final int FILTER_MSG = 0x2;
+       private int filterMode = FILTER_NONE;
 
        public static final int LEVEL_ALL = 0x1F;
        public static final int LEVEL_VERBOSE = 0x1;
@@ -62,7 +63,6 @@ public class LogTab {
        public static final int LEVEL_WARNING = 0x8;
        public static final int LEVEL_ERROR = 0x16;
 
-        private int filterMode = FILTER_NONE;
        /**
         * Single level log level as defined in Log.mLevelChar. Only valid if mMode
         * is MODE_LEVEL
@@ -76,6 +76,7 @@ public class LogTab {
        private String pidFilterString = null;
        private String tagFilterString = null;
        private String msgFilterString = null;
+       private String tableFilter = null;
        private String filterName = null;
        private IDevice filterDevice = null;
        private LogTabOuputReceiver logger = null;
@@ -433,7 +434,8 @@ public class LogTab {
                                {
                                        if (Integer.toString(logMessage.data.pid).contains(
                                                        filter))
-                                               return true;
+                                               if( tableAccept(logMessage))
+                                                       return true;
                                }
                        }
 
@@ -442,7 +444,8 @@ public class LogTab {
                                for( String filter : tagFilter ){
                                        if (logMessage.data.tag.toLowerCase().contains(
                                                        filter.toLowerCase()))
-                                               return true;
+                                               if( tableAccept(logMessage))
+                                                       return true;
                                }
                        }
 
@@ -451,12 +454,16 @@ public class LogTab {
                                for( String filter : msgFilter){
                                        if (logMessage.msg.toLowerCase().contains(
                                                        filter.toLowerCase()))
-                                               return true;
+                                               if( tableAccept(logMessage))
+                                                       return true;
                                }
                        }
                        return false;
                }
-               return true;
+               if( tableAccept(logMessage))
+                       return true;
+               else
+                       return false;
        }
 
        /**
@@ -857,7 +864,12 @@ public class LogTab {
                flush();
        }
        
-       public void tableRefill(int index, String tableFilter) {
+       public void tableRefill(int index, String filter) {
+
+               
+               tableFilter = filter;
+               filterMode = index;
+               
                newMessages.clear();
                lastMessageInfo = null;
                if (table.isDisposed() == false)
@@ -865,22 +877,24 @@ public class LogTab {
 
                synchronized (tableMessages) {
                        for (LogMessage logMsg : tableMessages) {
-                               if (tableAccept(logMsg, index, tableFilter)) {
+                               if (tableAccept( logMsg )) {
                                        newMessages.add(logMsg);
                                }
                        }
                }
-       
                flush();
        }
        
-       boolean tableAccept(LogMessage logMessage, int index, String tableFilter) {
+       boolean tableAccept(LogMessage logMessage) {
                if (logMessage == null)
                        return false;
                
-               switch(index){                                  
+               if( tableFilter == null || tableFilter.length() == 0)
+                       return true;
+               
+               switch(filterMode){                                     
                case 0:
-                       if (tableFilter != null) {
+                       {
                                String[] filter = tableFilter.split("[\\s\t,]");
                                for (int i = 0; i < filter.length; i++) {
                                        if (Integer.toString(logMessage.data.pid).contains(
@@ -890,21 +904,21 @@ public class LogTab {
                        }
                        break;
                case 1:
-                       if (tableFilter != null) {
+                       {
                                String[] filter = tableFilter.split("[\\s\t,]");
                                for (int i = 0; i < filter.length; i++) {
                                        if (logMessage.data.tag.toLowerCase().contains(
-                                                       filter[i]))
+                                                       filter[i].toLowerCase()))
                                                return true;
                                }
                        }
                        break;
                case 2:
-                       if (tableFilter != null) {
+                       {
                                String[] filter = tableFilter.split("[\\s\t,]");
                                for (int i = 0; i < filter.length; i++) {
                                        if (logMessage.msg.toLowerCase().contains(
-                                                       filter[i]))
+                                                       filter[i].toLowerCase()))
                                                return true;
                                }
                        }