You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Gilad Denneboom (Created) (JIRA)" <ji...@apache.org> on 2012/01/16 14:34:41 UTC
[jira] [Created] (PDFBOX-1209) Add insertSiblingBefore() to
PDOutlineItem
Add insertSiblingBefore() to PDOutlineItem
------------------------------------------
Key: PDFBOX-1209
URL: https://issues.apache.org/jira/browse/PDFBOX-1209
Project: PDFBox
Issue Type: New Feature
Components: PDModel
Affects Versions: 1.6.0
Reporter: Gilad Denneboom
Priority: Minor
At the moment it's not possible to insert a first child to a pre-existing PDDocumentOutline because all the available methods only allow you to add a PDOutlineItem at the end of the list (PDDocumentOutline.appendChild()) or after an existing child (PDOutlineItem.insertAfterSibling()). As a result, if you wish to insert a new first child, you have to manually traverse and re-create the entire tree, which is ridiculous.
As a solution, I offer to add a new method to the PDOutlineItem class, insertSiblingBefore(). I've written the code necessary based on insertSiblingAfter(). It's very straight-forward...
/**
* Insert a sibling before this node.
*
* @param item The item to insert.
*/
public void insertSiblingBefore( PDOutlineItem item )
{
item.setParent( getParent() );
PDOutlineItem previous = getPreviousSibling();
setPreviousSibling( item );
item.setNextSibling( this );
if( previous != null )
{
item.setPreviousSibling( previous );
previous.setNextSibling( item );
}
updateParentOpenCount( 1 );
}
I hope this can be integrated in the next release...
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (PDFBOX-1209) Add insertSiblingBefore() to
PDOutlineItem
Posted by "Gilad Denneboom (Updated) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/PDFBOX-1209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gilad Denneboom updated PDFBOX-1209:
------------------------------------
Description:
At the moment it's not possible to insert a first child to a pre-existing PDDocumentOutline because all the available methods only allow you to add a PDOutlineItem at the end of the list (PDDocumentOutline.appendChild()) or after an existing child (PDOutlineItem.insertSiblingAfter()). As a result, if you wish to insert a new first child, you have to manually traverse and re-create the entire tree, which is ridiculous.
As a solution, I offer to add a new method to the PDOutlineItem class, insertSiblingBefore(). I've written the code necessary based on insertSiblingAfter(). It's very straight-forward...
/**
* Insert a sibling before this node.
*
* @param item The item to insert.
*/
public void insertSiblingBefore( PDOutlineItem item )
{
item.setParent( getParent() );
PDOutlineItem previous = getPreviousSibling();
setPreviousSibling( item );
item.setNextSibling( this );
if( previous != null )
{
item.setPreviousSibling( previous );
previous.setNextSibling( item );
}
updateParentOpenCount( 1 );
}
I hope this can be integrated in the next release...
was:
At the moment it's not possible to insert a first child to a pre-existing PDDocumentOutline because all the available methods only allow you to add a PDOutlineItem at the end of the list (PDDocumentOutline.appendChild()) or after an existing child (PDOutlineItem.insertAfterSibling()). As a result, if you wish to insert a new first child, you have to manually traverse and re-create the entire tree, which is ridiculous.
As a solution, I offer to add a new method to the PDOutlineItem class, insertSiblingBefore(). I've written the code necessary based on insertSiblingAfter(). It's very straight-forward...
/**
* Insert a sibling before this node.
*
* @param item The item to insert.
*/
public void insertSiblingBefore( PDOutlineItem item )
{
item.setParent( getParent() );
PDOutlineItem previous = getPreviousSibling();
setPreviousSibling( item );
item.setNextSibling( this );
if( previous != null )
{
item.setPreviousSibling( previous );
previous.setNextSibling( item );
}
updateParentOpenCount( 1 );
}
I hope this can be integrated in the next release...
> Add insertSiblingBefore() to PDOutlineItem
> ------------------------------------------
>
> Key: PDFBOX-1209
> URL: https://issues.apache.org/jira/browse/PDFBOX-1209
> Project: PDFBox
> Issue Type: New Feature
> Components: PDModel
> Affects Versions: 1.6.0
> Reporter: Gilad Denneboom
> Priority: Minor
> Labels: bookmarks
>
> At the moment it's not possible to insert a first child to a pre-existing PDDocumentOutline because all the available methods only allow you to add a PDOutlineItem at the end of the list (PDDocumentOutline.appendChild()) or after an existing child (PDOutlineItem.insertSiblingAfter()). As a result, if you wish to insert a new first child, you have to manually traverse and re-create the entire tree, which is ridiculous.
> As a solution, I offer to add a new method to the PDOutlineItem class, insertSiblingBefore(). I've written the code necessary based on insertSiblingAfter(). It's very straight-forward...
> /**
> * Insert a sibling before this node.
> *
> * @param item The item to insert.
> */
> public void insertSiblingBefore( PDOutlineItem item )
> {
> item.setParent( getParent() );
> PDOutlineItem previous = getPreviousSibling();
> setPreviousSibling( item );
> item.setNextSibling( this );
> if( previous != null )
> {
> item.setPreviousSibling( previous );
> previous.setNextSibling( item );
> }
> updateParentOpenCount( 1 );
> }
> I hope this can be integrated in the next release...
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira