[ 
https://issues.apache.org/jira/browse/NETBEANS-3355?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benedikt Schlagberger updated NETBEANS-3355:
--------------------------------------------
    Description: 
When painting in the sidebar using the {{SideBarFactory}}, the painted Graphic 
is offset for large files. To reproduce, create a NetBeans plugin project and 
add the following class:
{code:java}
package com.mycompany.sidebar_test;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JComponent;
import javax.swing.text.JTextComponent;
import org.netbeans.spi.editor.SideBarFactory;

public class MySidebarFactory implements SideBarFactory {
    @Override
    public JComponent createSideBar(JTextComponent jtc) {
        return new MySidebar();
    }

    private class MySidebar extends JComponent {
        @Override
        protected void paintComponent(Graphics g) {
            g.setColor(Color.BLUE);
            g.fillRect(0, 0, 10, 1000); // Paint blue rectangle starting at the 
top of the sidebar with height of 1000px 
        }

        @Override
        public Dimension getPreferredSize() {
            Dimension dimension = new Dimension(this.getParent().getSize());
            dimension.width = 10;

            return dimension;
        }
    }
}
{code}

Register the {{SideBarFactory}} using the following {{layers.xml}}:
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN" 
"http://www.netbeans.org/dtds/filesystem-1_2.dtd";>
<filesystem>
    <folder name="Editors">
        <folder name="SideBar">
            <file name="com-mycompany-sidebar_test-MySidebarFactory.instance">
                <attr name="location" stringvalue="West"/>
            </file>
        </folder>
    </folder>
</filesystem>
{code}

Now start the plugin and open a project containing a large file for example the 
[StrBuilder.java|https://raw.githubusercontent.com/apache/commons-lang/master/src/main/java/org/apache/commons/lang3/text/StrBuilder.java]
 from the apache commons lib.

The painting is offset by a large amount as you can see in the attached 
screenshot (blue rectangle should start in line 1, not 2150). When shortening 
the file and re-opening it, the marker moves, so I suppose this is related to 
the file size.

  was:
When painting in the sidebar using the {{SideBarFactory}}, the painted Graphic 
is offset for large files. To reproduce, create a NetBeans plugin project and 
add the following class:
{code:java}
package com.mycompany.sidebar_test;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JComponent;
import javax.swing.text.JTextComponent;
import org.netbeans.spi.editor.SideBarFactory;

public class MySidebarFactory implements SideBarFactory {
    @Override
    public JComponent createSideBar(JTextComponent jtc) {
        return new MySidebar();
    }

    private class MySidebar extends JComponent {
        @Override
        protected void paintComponent(Graphics g) {
            g.setColor(Color.BLUE);
            g.fillRect(0, 0, 10, 1000); // Paint blue rectangle starting at the 
top of the sidebar with height of 1000px 
        }

        @Override
        public Dimension getPreferredSize() {
            Dimension dimension = new Dimension(this.getParent().getSize());
            dimension.width = 10;

            return dimension;
        }
    }
}
{code}

Register the {{SideBarFactory}} using the following {{layers.xml}}:
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN" 
"http://www.netbeans.org/dtds/filesystem-1_2.dtd";>
<filesystem>
    <folder name="Editors">
        <folder name="SideBar">
            <file name="com-mycompany-sidebar_test-MySidebarFactory.instance">
                <attr name="location" stringvalue="West"/>
            </file>
        </folder>
    </folder>
</filesystem>
{code}

Now start the plugin and open a project containing a large file for example the 
[StrBuilder.java|https://raw.githubusercontent.com/apache/commons-lang/master/src/main/java/org/apache/commons/lang3/text/StrBuilder.java]
 from the apache commons lib.

The painting is offset by a large amount as you can see in the attached 
screenshot (blue rectangle should start in line 1). When shortening the file 
and re-opening it, the marker moves, so I suppose this is related to the file 
size.


> SideBarFactory painting offset with large files
> -----------------------------------------------
>
>                 Key: NETBEANS-3355
>                 URL: https://issues.apache.org/jira/browse/NETBEANS-3355
>             Project: NetBeans
>          Issue Type: Bug
>    Affects Versions: 8.2, 11.0
>            Reporter: Benedikt Schlagberger
>            Priority: Major
>         Attachments: Bildschirmfoto von 2019-11-07 19-34-21.png
>
>
> When painting in the sidebar using the {{SideBarFactory}}, the painted 
> Graphic is offset for large files. To reproduce, create a NetBeans plugin 
> project and add the following class:
> {code:java}
> package com.mycompany.sidebar_test;
> import java.awt.Color;
> import java.awt.Dimension;
> import java.awt.Graphics;
> import javax.swing.JComponent;
> import javax.swing.text.JTextComponent;
> import org.netbeans.spi.editor.SideBarFactory;
> public class MySidebarFactory implements SideBarFactory {
>     @Override
>     public JComponent createSideBar(JTextComponent jtc) {
>         return new MySidebar();
>     }
>     private class MySidebar extends JComponent {
>         @Override
>         protected void paintComponent(Graphics g) {
>             g.setColor(Color.BLUE);
>             g.fillRect(0, 0, 10, 1000); // Paint blue rectangle starting at 
> the top of the sidebar with height of 1000px 
>         }
>         @Override
>         public Dimension getPreferredSize() {
>             Dimension dimension = new Dimension(this.getParent().getSize());
>             dimension.width = 10;
>             return dimension;
>         }
>     }
> }
> {code}
> Register the {{SideBarFactory}} using the following {{layers.xml}}:
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN" 
> "http://www.netbeans.org/dtds/filesystem-1_2.dtd";>
> <filesystem>
>     <folder name="Editors">
>         <folder name="SideBar">
>             <file name="com-mycompany-sidebar_test-MySidebarFactory.instance">
>                 <attr name="location" stringvalue="West"/>
>             </file>
>         </folder>
>     </folder>
> </filesystem>
> {code}
> Now start the plugin and open a project containing a large file for example 
> the 
> [StrBuilder.java|https://raw.githubusercontent.com/apache/commons-lang/master/src/main/java/org/apache/commons/lang3/text/StrBuilder.java]
>  from the apache commons lib.
> The painting is offset by a large amount as you can see in the attached 
> screenshot (blue rectangle should start in line 1, not 2150). When shortening 
> the file and re-opening it, the marker moves, so I suppose this is related to 
> the file size.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to