tn5250j/src/org/tn5250j/framework/tn5250 ScreenPlanes.java,1.4,1.5

"Kenneth J. Pouncey" <[email protected]> Sun, 01 Aug 2004 13:58:02 +0000
Newsgroups gmane.comp.java.tn5250j.cvs
Message-ID <[email protected]>
Update of /cvsroot/tn5250j/tn5250j/src/org/tn5250j/framework/tn5250
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1254/src/org/tn5250j/framework/tn5250

Modified Files:
	ScreenPlanes.java 
Log Message:
code optimization

Index: ScreenPlanes.java
===================================================================
RCS file: /cvsroot/tn5250j/tn5250j/src/org/tn5250j/framework/tn5250/ScreenPlanes.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** ScreenPlanes.java	1 Aug 2004 12:34:24 -0000	1.4
--- ScreenPlanes.java	1 Aug 2004 13:58:00 -0000	1.5
***************
*** 48,54 ****
     protected char[] screenColor;   // color plane
     protected char[] screenExtended;   // extended plane
!    protected boolean[] screenIsChanged;
  
!    protected static char[] initArray;   
  
     protected char[] errorLine;
--- 48,54 ----
     protected char[] screenColor;   // color plane
     protected char[] screenExtended;   // extended plane
!    protected char[] screenIsChanged;
  
!    protected char[] initArray;   
  
     protected char[] errorLine;
***************
*** 90,97 ****
        screenExtended = new char[screenSize];
        fieldExtended = new char[screenSize];
!       screenIsChanged = new boolean[screenSize];
        screenField = new char[screenSize];
  
!       initArray = null;
        
        initalizePlanes();
--- 90,97 ----
        screenExtended = new char[screenSize];
        fieldExtended = new char[screenSize];
!       screenIsChanged = new char[screenSize];
        screenField = new char[screenSize];
  
!       initArray = new char[screenSize];
        
        initalizePlanes();
***************
*** 168,172 ****
        disperseAttribute(pos,attr);
        screenIsAttr[pos] = (isAttr ? (char)1 : (char)0);
!       screenGUI[pos] = initChar;
  
     }
--- 168,172 ----
        disperseAttribute(pos,attr);
        screenIsAttr[pos] = (isAttr ? (char)1 : (char)0);
!       screenGUI[pos] = NO_GUI;
  
     }
***************
*** 196,202 ****
  
     protected final void setChar(int pos, char c) {
!       screenIsChanged[pos] = screen[pos] == c ? false : true;
!       //      if (isChanged)
!       //         System.out.println(sChar[0] + " - " + c);
        screen[pos] = c;
        if (screenIsAttr[pos] == 1)
--- 196,200 ----
  
     protected final void setChar(int pos, char c) {
!       screenIsChanged[pos] = screen[pos] == c ? '0' : '1';
        screen[pos] = c;
        if (screenIsAttr[pos] == 1)
***************
*** 219,245 ****
     public final void setUseGUI(int pos, int which) {
  
!       screenIsChanged[pos] = screenGUI[pos] == which ? false : true;
  
        screenGUI[pos] = (char)which;
     }
  
     protected void initalizePlanes () {
  
        for (int y = 0;y < screenSize; y++) {
  
!          setScreenCharAndAttr(y,initChar,initAttr,false);
!          screenGUI[y] = NO_GUI;
!          screenIsChanged[y] = false;
  
        }
        
-       if (initArray == null) {
-          initArray = new char[screenSize];
-          System.arraycopy(screen,0,initArray,0,screenSize);
-         
-       }
        // here we will just copy the initialized plane onto the other planes 
        // using arraycopy which will be faster.  I hope.
!       
        System.arraycopy(initArray,0,fieldExtended,0,screenSize);
        System.arraycopy(initArray,0,screenField,0,screenSize);
--- 217,427 ----
     public final void setUseGUI(int pos, int which) {
  
!       screenIsChanged[pos] = screenGUI[pos] == which ? '0' : '1';
  
        screenGUI[pos] = (char)which;
     }
+    
+    private void disperseAttribute(int pos, int attr) {
+ 
+       char c = 0;
+       char cs = 0;
+       char ul = 0;
+       char nd = 0;
+ 
+       if(attr == 0)
+          return;
+ 
+       switch(attr) {
+          case 32: // green normal
+             c = (COLOR_BG_BLACK << 8 & 0xff00) |
+             (COLOR_FG_GREEN & 0xff);
+             break;
+ 
+          case 33: // green/revers
+             c = (COLOR_BG_GREEN << 8 & 0xff00) |
+             (COLOR_FG_BLACK & 0xff);
+             break;
+ 
+          case 34: // white normal
+             c = (COLOR_BG_BLACK << 8 & 0xff00) |
+             (COLOR_FG_WHITE & 0xff);
+             break;
+ 
+          case 35: // white/reverse
+             c = (COLOR_BG_WHITE << 8 & 0xff00) |
+             (COLOR_FG_BLACK & 0xff);
+             break;
+ 
+          case 36: // green/underline
+             c = (COLOR_BG_BLACK << 8 & 0xff00) |
+             (COLOR_FG_GREEN & 0xff);
+             ul = EXTENDED_5250_UNDERLINE;
+             break;
+ 
+          case 37: // green/reverse/underline
+             c = (COLOR_BG_GREEN << 8 & 0xff00) |
+             (COLOR_FG_BLACK & 0xff);
+             ul = EXTENDED_5250_UNDERLINE;
+             break;
+ 
+          case 38: // white/underline
+             c = (COLOR_BG_BLACK << 8 & 0xff00) |
+             (COLOR_FG_WHITE & 0xff);
+             ul = EXTENDED_5250_UNDERLINE;
+             break;
+ 
+          case 39:
+             nd = EXTENDED_5250_NON_DSP;
+             break;
+ 
+          case 40:
+          case 42: // red/normal
+             c = (COLOR_BG_BLACK << 8 & 0xff00) |
+             (COLOR_FG_RED & 0xff);
+             break;
+ 
+          case 41:
+          case 43: // red/reverse
+             c = (COLOR_BG_RED << 8 & 0xff00) |
+             (COLOR_FG_BLACK & 0xff);
+             break;
+ 
+          case 44:
+          case 46: // red/underline
+             c = (COLOR_BG_BLACK << 8 & 0xff00) |
+             (COLOR_FG_RED & 0xff);
+             ul = EXTENDED_5250_UNDERLINE;
+             break;
+ 
+          case 45: // red/reverse/underline
+             c = ( COLOR_BG_RED << 8 & 0xff00) |
+             ( COLOR_FG_BLACK & 0xff);
+             ul = EXTENDED_5250_UNDERLINE;
+             break;
+ 
+          case 47:
+             nd = EXTENDED_5250_NON_DSP;
+             break;
+ 
+          case 48:
+             c = (COLOR_BG_BLACK << 8 & 0xff00) |
+             (COLOR_FG_CYAN & 0xff);
+             cs = EXTENDED_5250_COL_SEP;
+             break;
+ 
+          case 49:
+             c = (COLOR_BG_CYAN << 8 & 0xff00) |
+             (COLOR_FG_BLACK & 0xff);
+             cs = EXTENDED_5250_COL_SEP;
+             break;
+ 
+          case 50:
+             c = (COLOR_BG_BLACK << 8 & 0xff00) |
+             (COLOR_FG_YELLOW & 0xff);
+             cs = EXTENDED_5250_COL_SEP;
+             break;
+ 
+          case 51:
+             c = (COLOR_BG_YELLOW << 8 & 0xff00) |
+             (COLOR_FG_BLACK & 0xff);
+             cs = EXTENDED_5250_COL_SEP;
+             break;
+ 
+          case 52:
+             c = ( COLOR_BG_BLACK << 8 & 0xff00) |
+             ( COLOR_FG_CYAN & 0xff);
+ //            colSep = true;
+             ul = EXTENDED_5250_UNDERLINE;
+             break;
+ 
+          case 53:
+             c = ( COLOR_BG_CYAN << 8 & 0xff00) |
+             ( COLOR_FG_BLACK & 0xff);
+ //            colSep = true;
+             ul = EXTENDED_5250_UNDERLINE;
+             break;
+ 
+          case 54:
+             c = ( COLOR_BG_BLACK << 8 & 0xff00) |
+             ( COLOR_FG_YELLOW & 0xff);
+ //            colSep = true;
+             ul = EXTENDED_5250_UNDERLINE;
+             break;
+ 
+          case 55:
+             nd = EXTENDED_5250_NON_DSP;
+             break;
+ 
+          case 56: // pink
+             c = ( COLOR_BG_BLACK << 8 & 0xff00) |
+             ( COLOR_FG_MAGENTA & 0xff);
+             break;
+ 
+          case 57: // pink/reverse
+             c = ( COLOR_BG_MAGENTA << 8 & 0xff00) |
+             ( COLOR_FG_BLACK & 0xff);
+             break;
+ 
+          case 58: // blue/reverse
+             c = ( COLOR_BG_BLACK << 8 & 0xff00) |
+             ( COLOR_FG_BLUE & 0xff);
+             break;
+ 
+          case 59: // blue
+             c = ( COLOR_BG_BLUE << 8 & 0xff00) |
+             ( COLOR_FG_BLACK & 0xff);
+             break;
+ 
+          case 60: // pink/underline
+             c = ( COLOR_BG_BLACK << 8 & 0xff00) |
+             ( COLOR_FG_MAGENTA & 0xff);
+             ul = EXTENDED_5250_UNDERLINE;
+             break;
+ 
+          case 61: // pink/reverse/underline
+             c = ( COLOR_BG_MAGENTA << 8 & 0xff00) |
+             ( COLOR_FG_BLACK & 0xff);
+             ul = EXTENDED_5250_UNDERLINE;
+             break;
+ 
+          case 62: // blue/underline
+             c = ( COLOR_BG_BLACK << 8 & 0xff00) |
+             ( COLOR_FG_BLUE & 0xff);
+             ul = EXTENDED_5250_UNDERLINE;
+             break;
+ 
+          case 63:  // nondisplay
+             nd = EXTENDED_5250_NON_DSP;
+             break;
+          default:
+             c = ( COLOR_BG_BLACK << 8 & 0xff00) |
+             ( COLOR_FG_YELLOW & 0xff);
+             break;
+ 
+       }
+ 
+       screenColor[pos] = c;
+       screenExtended[pos] = (char)(ul | cs | nd);
+    }
  
     protected void initalizePlanes () {
  
+       char c = (COLOR_BG_BLACK << 8 & 0xff00) |
+       (COLOR_FG_GREEN & 0xff);
+ 
        for (int y = 0;y < screenSize; y++) {
  
!          screenAttr[y] = initAttr;
!          screenColor[y] = c;
  
        }
        
        // here we will just copy the initialized plane onto the other planes 
        // using arraycopy which will be faster.  I hope.
!      
!       System.arraycopy(initArray,0,screen,0,screenSize);
!       System.arraycopy(initArray,0,screenGUI,0,screenSize);
!       System.arraycopy(initArray,0,screenIsAttr,0,screenSize);
!       System.arraycopy(initArray,0,screenExtended,0,screenSize);
        System.arraycopy(initArray,0,fieldExtended,0,screenSize);
        System.arraycopy(initArray,0,screenField,0,screenSize);
***************
*** 257,261 ****
  
     protected final boolean isChanged(int pos) {
!       return screenIsChanged[pos];
     }
  
--- 439,443 ----
  
     protected final boolean isChanged(int pos) {
!       return screenIsChanged[pos] == 0 ? false : true;
     }
  
***************
*** 594,780 ****
     }
  
-    public final void disperseAttribute(int pos, int attr) {
- 
-       char c = 0;
-       char cs = 0;
-       char ul = 0;
-       char nd = 0;
- 
-       if(attr == 0)
-          return;
- 
-       switch(attr) {
-          case 32: // green normal
-             c = (COLOR_BG_BLACK << 8 & 0xff00) |
-             (COLOR_FG_GREEN & 0xff);
-             break;
- 
-          case 33: // green/revers
-             c = (COLOR_BG_GREEN << 8 & 0xff00) |
-             (COLOR_FG_BLACK & 0xff);
-             break;
- 
-          case 34: // white normal
-             c = (COLOR_BG_BLACK << 8 & 0xff00) |
-             (COLOR_FG_WHITE & 0xff);
-             break;
- 
-          case 35: // white/reverse
-             c = (COLOR_BG_WHITE << 8 & 0xff00) |
-             (COLOR_FG_BLACK & 0xff);
-             break;
- 
-          case 36: // green/underline
-             c = (COLOR_BG_BLACK << 8 & 0xff00) |
-             (COLOR_FG_GREEN & 0xff);
-             ul = EXTENDED_5250_UNDERLINE;
-             break;
- 
-          case 37: // green/reverse/underline
-             c = (COLOR_BG_GREEN << 8 & 0xff00) |
-             (COLOR_FG_BLACK & 0xff);
-             ul = EXTENDED_5250_UNDERLINE;
-             break;
- 
-          case 38: // white/underline
-             c = (COLOR_BG_BLACK << 8 & 0xff00) |
-             (COLOR_FG_WHITE & 0xff);
-             ul = EXTENDED_5250_UNDERLINE;
-             break;
- 
-          case 39:
-             nd = EXTENDED_5250_NON_DSP;
-             break;
- 
-          case 40:
-          case 42: // red/normal
-             c = (COLOR_BG_BLACK << 8 & 0xff00) |
-             (COLOR_FG_RED & 0xff);
-             break;
- 
-          case 41:
-          case 43: // red/reverse
-             c = (COLOR_BG_RED << 8 & 0xff00) |
-             (COLOR_FG_BLACK & 0xff);
-             break;
- 
-          case 44:
-          case 46: // red/underline
-             c = (COLOR_BG_BLACK << 8 & 0xff00) |
-             (COLOR_FG_RED & 0xff);
-             ul = EXTENDED_5250_UNDERLINE;
-             break;
- 
-          case 45: // red/reverse/underline
-             c = ( COLOR_BG_RED << 8 & 0xff00) |
-             ( COLOR_FG_BLACK & 0xff);
-             ul = EXTENDED_5250_UNDERLINE;
-             break;
- 
-          case 47:
-             nd = EXTENDED_5250_NON_DSP;
-             break;
- 
-          case 48:
-             c = (COLOR_BG_BLACK << 8 & 0xff00) |
-             (COLOR_FG_CYAN & 0xff);
-             cs = EXTENDED_5250_COL_SEP;
-             break;
- 
-          case 49:
-             c = (COLOR_BG_CYAN << 8 & 0xff00) |
-             (COLOR_FG_BLACK & 0xff);
-             cs = EXTENDED_5250_COL_SEP;
-             break;
- 
-          case 50:
-             c = (COLOR_BG_BLACK << 8 & 0xff00) |
-             (COLOR_FG_YELLOW & 0xff);
-             cs = EXTENDED_5250_COL_SEP;
-             break;
- 
-          case 51:
-             c = (COLOR_BG_YELLOW << 8 & 0xff00) |
-             (COLOR_FG_BLACK & 0xff);
-             cs = EXTENDED_5250_COL_SEP;
-             break;
- 
-          case 52:
-             c = ( COLOR_BG_BLACK << 8 & 0xff00) |
-             ( COLOR_FG_CYAN & 0xff);
- //            colSep = true;
-             ul = EXTENDED_5250_UNDERLINE;
-             break;
- 
-          case 53:
-             c = ( COLOR_BG_CYAN << 8 & 0xff00) |
-             ( COLOR_FG_BLACK & 0xff);
- //            colSep = true;
-             ul = EXTENDED_5250_UNDERLINE;
-             break;
- 
-          case 54:
-             c = ( COLOR_BG_BLACK << 8 & 0xff00) |
-             ( COLOR_FG_YELLOW & 0xff);
- //            colSep = true;
-             ul = EXTENDED_5250_UNDERLINE;
-             break;
- 
-          case 55:
-             nd = EXTENDED_5250_NON_DSP;
-             break;
- 
-          case 56: // pink
-             c = ( COLOR_BG_BLACK << 8 & 0xff00) |
-             ( COLOR_FG_MAGENTA & 0xff);
-             break;
- 
-          case 57: // pink/reverse
-             c = ( COLOR_BG_MAGENTA << 8 & 0xff00) |
-             ( COLOR_FG_BLACK & 0xff);
-             break;
- 
-          case 58: // blue/reverse
-             c = ( COLOR_BG_BLACK << 8 & 0xff00) |
-             ( COLOR_FG_BLUE & 0xff);
-             break;
- 
-          case 59: // blue
-             c = ( COLOR_BG_BLUE << 8 & 0xff00) |
-             ( COLOR_FG_BLACK & 0xff);
-             break;
- 
-          case 60: // pink/underline
-             c = ( COLOR_BG_BLACK << 8 & 0xff00) |
-             ( COLOR_FG_MAGENTA & 0xff);
-             ul = EXTENDED_5250_UNDERLINE;
-             break;
- 
-          case 61: // pink/reverse/underline
-             c = ( COLOR_BG_MAGENTA << 8 & 0xff00) |
-             ( COLOR_FG_BLACK & 0xff);
-             ul = EXTENDED_5250_UNDERLINE;
-             break;
- 
-          case 62: // blue/underline
-             c = ( COLOR_BG_BLACK << 8 & 0xff00) |
-             ( COLOR_FG_BLUE & 0xff);
-             ul = EXTENDED_5250_UNDERLINE;
-             break;
- 
-          case 63:  // nondisplay
-             nd = EXTENDED_5250_NON_DSP;
-             break;
-          default:
-             c = ( COLOR_BG_BLACK << 8 & 0xff00) |
-             ( COLOR_FG_YELLOW & 0xff);
-             break;
- 
-       }
- 
-       screenColor[pos] = c;
-       screenExtended[pos] = (char)(ul | cs | nd);
-    }
- 
     protected boolean checkHotSpots () {
  
--- 776,779 ----



-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com