tn5250j/src/org/tn5250j GuiGraphicBuffer.java,1.29,1.30 Screen5250.java,1.74,1.75 Gui5250.java,1.65,1.66

"Kenneth J. Pouncey" <[email protected]> Tue, 20 Jul 2004 20:17:06 +0000
Newsgroups gmane.comp.java.tn5250j.cvs
Message-ID <[email protected]>
Update of /cvsroot/tn5250j/tn5250j/src/org/tn5250j
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20525/src/org/tn5250j

Modified Files:
	GuiGraphicBuffer.java Screen5250.java Gui5250.java 
Log Message:
Fix paint problem on screen resize

Index: Gui5250.java
===================================================================
RCS file: /cvsroot/tn5250j/tn5250j/src/org/tn5250j/Gui5250.java,v
retrieving revision 1.65
retrieving revision 1.66
diff -C2 -d -r1.65 -r1.66
*** Gui5250.java	18 Jul 2004 13:38:54 -0000	1.65
--- Gui5250.java	20 Jul 2004 20:17:03 -0000	1.66
***************
*** 800,805 ****
        if (bi != null)
     		bi.resizeScreenArea(r.width, r.height);
!       repaint();
! //		screen.repaintScreen();
  		screen.setCursorActive(true);
  
--- 800,805 ----
        if (bi != null)
     		bi.resizeScreenArea(r.width, r.height);
! //      repaint();
! 		screen.repaintScreen();
  		screen.setCursorActive(true);
  
***************
*** 836,840 ****
  
     protected void paintComponent(Graphics g) {
! 	  log.debug("paint from screen");
  
       if (bi == null) {
--- 836,840 ----
  
     protected void paintComponent(Graphics g) {
! 	  //log.info("paint from screen");
  
       if (bi == null) {

Index: GuiGraphicBuffer.java
===================================================================
RCS file: /cvsroot/tn5250j/tn5250j/src/org/tn5250j/GuiGraphicBuffer.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -C2 -d -r1.29 -r1.30
*** GuiGraphicBuffer.java	18 Jul 2004 13:38:54 -0000	1.29
--- GuiGraphicBuffer.java	20 Jul 2004 20:17:03 -0000	1.30
***************
*** 215,219 ****
        }
  
!       drawOIA();
     }
  
--- 215,222 ----
        }
  
!       //drawOIA();
! //      screen.updateScreen();
! //      gui.validate();
! //      gui.repaint();
     }
  
***************
*** 1887,1890 ****
--- 1890,1898 ----
     }
  
+    public void onScreenSizeChanged(int rows, int cols) {
+       log.info("screen size change");
+       gui.resizeMe();
+    }
+    
     public void onScreenChanged(int which, int sr, int sc, int er, int ec) {
  
***************
*** 1904,1908 ****
           screen.checkHotSpots();
  
!       log.info("screen updated -> " +  sr + ", " + sc + ", " + er + ", " + ec);
  
        int rows = er - sr;
--- 1912,1916 ----
           screen.checkHotSpots();
  
!       //log.info("screen updated -> " +  sr + ", " + sc + ", " + er + ", " + ec);
  
        int rows = er - sr;

Index: Screen5250.java
===================================================================
RCS file: /cvsroot/tn5250j/tn5250j/src/org/tn5250j/Screen5250.java,v
retrieving revision 1.74
retrieving revision 1.75
diff -C2 -d -r1.74 -r1.75
*** Screen5250.java	18 Jul 2004 13:38:54 -0000	1.74
--- Screen5250.java	20 Jul 2004 20:17:03 -0000	1.75
***************
*** 186,189 ****
--- 186,192 ----
  	public final void setRowsCols(int rows, int cols) {
  
+ 	   int oldRows = numRows;
+ 	   int oldCols = numCols;
+ 	   
  		// default number of rows and columns
  		numRows = rows;
***************
*** 191,198 ****
  
  		lenScreen = numRows * numCols;
- 
- 
        planes.setSize(rows);
  
  	}
  
--- 194,202 ----
  
  		lenScreen = numRows * numCols;
        planes.setSize(rows);
  
+       if (oldRows != numRows || oldCols != numCols)
+          fireScreenSizeChanged();
+ 
  	}
  
***************
*** 4405,4408 ****
--- 4409,4428 ----
     }
  
+    /**
+     * Notify all registered listeners of the onScreenSizeChanged event.
+     *
+     */
+    private void fireScreenSizeChanged() {
+ 
+       if (listeners != null) {
+          int size = listeners.size();
+          for (int i = 0; i < size; i++) {
+             ScreenListener target =
+                     (ScreenListener)listeners.elementAt(i);
+             target.onScreenSizeChanged(numRows,numCols);
+          }
+       }
+    }
+ 
  //      /**
  //       * Notify all registered listeners of the onScreenChanged event.
***************
*** 4669,4673 ****
  //            updateDirty();
  //         }
!       fireScreenChanged(1);
  		// restore statuses that were on the screen before resize
  		if (oia.getLevel() == ScreenOIA.OIA_LEVEL_INPUT_ERROR) {
--- 4689,4694 ----
  //            updateDirty();
  //         }
!       //fireScreenChanged(1);
!       updateDirty();
  		// restore statuses that were on the screen before resize
  		if (oia.getLevel() == ScreenOIA.OIA_LEVEL_INPUT_ERROR) {



-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click