Hi all,

I finished putting all the various methods in for HSSFRegionUtil and
HSSFUtil.  A couple things that I can see drawing comment...

One is that I use a PropertyUtils method to copy properties between two
CellStyles.  I also used a NestableException.  Not sure how POI feels about
dependencies on various packages in Commons.

I look forward to your feedback.  And as I find more region stuff
(background colors come to mind) I will add them if no one else beats me to
it!

Since I am not sure how to do a diff when nothing exists, I have just
attached the two classes.

Eric Pugh



-----Original Message-----
From: Andrew C. Oliver [mailto:[EMAIL PROTECTED]]
Sent: Monday, July 29, 2002 11:20 AM
To: [EMAIL PROTECTED]
Subject: Re: Draw Border Around Region


Works for me....

encapsulation is "annoying" ? ;-)

[EMAIL PROTECTED] wrote:
> Okay,
> 
> Here is my plan of action..  I am going to create
> contrib/src/org.apache.poi.hssf.usermodel.contrib.HSSFRegionUtil, and
going
> to stick my region code in there.  This will be just working around the
> edges of the usermodel.  I just started trying to get all the various
> elements to compile and run the tests etc, but to meet my immediate need,
I
> will add my util code there.  Also, I will ass
> contrib/src/org.apache.poi.hssf.usermodel.contrib.HSSFUtil that has things
> like getCell and getRow that make life easier.
> 
> Hopefully, as I get up to speed (and hit all the annoyances of coding
around
> the API versus updating the API :-) ) then I will try and get the
usermodel
> stuff working.
> 
> Sound good?
> Eric
> 
> -----Original Message-----
> From: Andrew C. Oliver [mailto:[EMAIL PROTECTED]]
> Sent: Monday, July 29, 2002 11:07 AM
> To: [EMAIL PROTECTED]
> Subject: Re: Draw Border Around Region
> 
> 
> To understand merged regions.  Create them with borders in excel and use:
> 
> org.apache.poi.hssf.dev.BiffViewer
> 
> on the resulting file.
> 
> 
> 
>>If not, then I will just continue down the workaround util code to make it
>>easier to assign borders to regions of cells.  If I end up on that path,
> 
> and
> 
>>you would like a contrib/src/ package, what should the package statement
> 
> be?
> 
> 
> perhaps:
> contrib/src/org.apache.poi.hssf.usermodel.contrib.*
> or maybe
> contrib/src/org.apache.poi.hssf.usermodel.ext.*
> 
> and we'll make a poi-hssf-optional.jar or something to that effect.  Do 
> something generic enough that later contributors can donate and use the 
> same scheme.
> 
> This might be a good way to suck others into the project.  They start 
> out hacking in contrib adding friendly functions and get sucked further 
> into the project without even realizing it ;-)
> 
> -Andy
> 
> 
> 
>>Eric
>>
>>-----Original Message-----
>>From: Andrew C. Oliver [mailto:[EMAIL PROTECTED]]
>>Sent: Monday, July 29, 2002 10:27 AM
>>To: [EMAIL PROTECTED]
>>Subject: Re: Draw Border Around Region
>>
>>
>>Okay maybe I misunderstood.  If this is to support a border to the 
>>MergedRegion as opposed to the cells in the merged region, then I 
>>support the addition of this.  If this is a utility to make it 
>>convenient to draw borders around cells then I'll -1 it in the core API.
>>I'd consider that to be the domain of the application programmer.  I'd 
>>be okay with putting it in some kind of contrib/src/ package for 
>>convenience functions around HSSF but not in HSSF proper.
>>
>>We're at the stage where we're getting stable, but I think we have to 
>>fight against bloat.
>>
>>That being said, if there is some way to expose a property of 
>>MergedRegion (org.apache.poi.hssf.record.MergedRegionRecord) that will 
>>assign it borders then thats cool with me.  I'd rather it not go in util 
>>but become part of the usermodel.
>>
>>-Andy
>>
>>[EMAIL PROTECTED] wrote:
>>
>>
>>>Okay...
>>>
>>>I started digging into it a little more, and things became more complex
>>
>>(of
>>
>>
>>>course....)  I saw you have some other *Util classes floating around that
>>
>>do
>>
>>
>>>things.
>>>
>>>It seems that I need to have access to the sheet, the row, and the
cell...
>>>So I was going to create a class called HSSFRegionUtil with methods like
>>>this:
>>>
>>>     public void leftBorder( HSSFCell cell ) {
>>>             HSSFCellStyle style = copy( cell.getCellStyle() );
>>>
>>>             if ( style.getBorderLeft() == HSSFCellStyle.BORDER_MEDIUM )
>>>{
>>>                     log.debug( "setting left border for cell with left
>>>border setting of medium" );
>>>             }
>>>
>>>             style.setBorderLeft( HSSFCellStyle.BORDER_MEDIUM );
>>>             style.setLeftBorderColor( HSSFColor.BLACK.index );
>>>
>>>             cell.setCellStyle( style );
>>>     }
>>>
>>>
>>>     protected void leftBorder( Region region ) {
>>>             int rowStart = region.getRowFrom();
>>>             int rowEnd = region.getRowTo();
>>>             int column = region.getColumnFrom();
>>>             log.debug( "rosStart:" + rowStart + ", rowend:" + rowEnd );
>>>
>>>             for ( int i = rowStart; i <= rowEnd; i++ ) {
>>>                     leftBorder( this.getCell( this.getRow( i ), column )
>>>);
>>>             }
>>>
>>>     }
>>>
>>>     public HSSFCellStyle copy( HSSFCellStyle style ) {
>>>             HSSFCellStyle style2 = wb.createCellStyle();
>>>             style2.setFont( wb.getFontAt( style.getFontIndex() ) );
>>>             style2.setVerticalAlignment( style.getVerticalAlignment() );
>>>             style2.setAlignment( style.getAlignment() );
>>>             style2.setWrapText( style.getWrapText() );
>>>             return style2;
>>>     }
>>>
>>>What I am concerned about is the need to make each cell have it's own
cell
>>>style, because otherwise it seems to share that style over every cell.
So
>>>if you make one cell have a left border, then all cells, sharing that
cell
>>>style, end up with a left border.
>>>
>>>Is doing this fit the poi model? 
>>>
>>>Eric
>>>
>>>-----Original Message-----
>>>From: Andrew C. Oliver [mailto:[EMAIL PROTECTED]]
>>>Sent: Friday, July 26, 2002 8:02 PM
>>>To: [EMAIL PROTECTED]
>>>Subject: re: Draw Border Around Region
>>>
>>>
>>>*sounds reasonable, but you'll need to create a new abstraction for 
>>>region (HSSFMergedRegion in usermodel)
>>>because Region is used for more than merged regions.
>>>
>>
>>
>
----------------------------------------------------------------------------
> 
>>>-----------------------------------------------------------------
>>>
>>>Subject:* Draw Border Around Region
>>>*From:* EPugh <at> upstate.com
>>>*Newsgroups:* gmane.comp.jakarta.poi.user
>>>*Date:* Jul 26 2002 14:27:38
>>>
>>>Hi all,
>>>
>>>I wanted to check on the status of the enhancment request for putting in
a
>>>setBorder commands for a region as well as a cell?
>>>
>>>I need it pretty urgently, so, if no one has taken a stab at it, I will.
>>>
>>>Basically, after looking at it, I think all I need to add to the Region
>>
>>code
>>
>>
>>>is:
>>>
>>>setBorderLeft( HSSFCellStyle.BORDER_MEDIUM) 
>>>
>>>Then in the method, I just figure out what cells are in the left side of
>>
>>the
>>
>>
>>>reagion, and just interate through them, grab their style, and call
>>>cell.setBorderLeft(my passed in border)....
>>>
>>>Seems easy enough, am I on the right track?
>>>
>>>Eric
>>>
>>>
>>>
>>>--
>>>To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
>>>For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>>
>>
>>
>>
>>
>>
>>--
>>To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
>>For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
> 
> 
> 
> 
> 
> 
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>





--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Attachment: HSSFUtil.java
Description: Binary data

Attachment: HSSFRegionUtil.java
Description: Binary data

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to