DarkMonkey Dev Blog - [Completed]

Have you tried pinging @venkatram_akkineni for help? He might have run into similar issues before.

Hiya @erlend_sh,

That’s an excellent idea.

@venkatram_akkineni, if you have some free time, could you glance at the code? I know the problem is probably some small thing… but I’m just not seeing it, atm. It’s located somewhere here:
https://github.com/Relic724/DarkMonkey/tree/master/src/com/nilo/plaf/nimrod
This shout out is also for anyone who knows Netbeans. I need to find that crucial forgotten thing, that Netbeans is looking for, which has been forgotten in Nimrod.

LOL, I will keep on bashing my brain at it, at any rate. Back to poking it with a stick for me… :grimacing:

Bug #2 located: Stabilized but not fixable.

Wow, Bug #2, “The disappearing search box” is one of those feedback loops from two sets of sources. I was chatting with a friend about it and he noticed a phrase that I didn’t: “incremental search sidebar”. So, a few google searches later, I found:

http://grepcode.com/file/bits.netbeans.org/maven2/org.netbeans.modules/org-netbeans-modules-editor-search/RELEASE80/org/netbeans/modules/editor/search/SearchComboBoxEditor.java?av=f

and oh, It looks like JComboBox and JTextfield are both extended… and sizing values are altered. I’ve stabilized the situation from the Nimrod side, but I don’t have the experience to be able to easily fix what the sidebar is doing.

Now I just need to find the locations for bug #1 and bug #3… erg…

Game On,
Charles

2 Likes

Hitting up the Netbeans forum for Bug #3

Bug #1 is low priority at this point, the shrinking toolbar is not a “functionality killer” like bugs #2 and #3. So, I’ve chosen bug #3: the “no-show value table” to focus on next.

I’ve located the main repository for Netbeans:
http://bits.netbeans.org/nexus/content/groups/netbeans/org/netbeans/modules/

And, to be honest, I’m pretty intimidated by the volume of modules that it looks like I’ll need to sort through. To reiterate the problem, I’ve got a few screenshots of the problem in action.

How it is supposed to work (Metal):

During a debug, you can hover over a variable and a “hinter” pops up that you can click on to expand…

And then … what looks to be a table … appears for interaction.

What is happening in DarkMonkey:

During a debug, you can hover over a variable and a “hinter” pops up that you can click on to expand…

And then … not so much…

I just need to locate the source for that particular class so that I can figure out which UI elements are being instantiated or, most likely, extended… and see what I can do on my end to make sure that the Nimrod source supplies what it needs.

If anyone on this forum happens to know the name of that class, I would love the “heads up” on it. I am cross linking this request over to the Netbeans forum, as well.

Game On,
Charles

What is bug#1 already?

I use dark monkey for several month now and 2 and 3 are indeed the most annoying issue. But, they can be worked around though.
2 is annoying because you don’t see your search query, but you still can search the file…
3 can be worked around by going to the “variables” tab when debugging…

Of course, those workarounds are very inconvenient, but they exists :stuck_out_tongue:

oh, yeah. LOL, bug #1 is the compression of icons for the editor window

when it switches to mouse hover state it loses about 2px on the width… not critical, but not expected behavior, either. I’ll be hunting for this one after I get ahold of #3.

I’ll go ahead and update the github repository with the “dirty” fix for bug #2. I say “dirty” because of graphical offsets not looking proper.

[edit] Release Incremental Search Sidebar fix · Relic724/DarkMonkey · GitHub
and… it lives. LOL

1 Like

Well ok. I never noticed the bug #1 :stuck_out_tongue: so it’s indeed minor.
Keep it up :wink:

Hum, i would love to give it a try but every time i try to install the plugin i get the following message…

fresh install, java up to date…any ideas?

oh, yeah, np. If you’ll notice… I’ve been developing this plug in for netbeans 8… that way when the 3.1 version of the SDK is ready, DarkMonkey will be ready for it.

So… yeah… this is a netbeans 8.02 (atm) type plug in… and won’t be usable for the current SDK.

edit: Your java is just fine :smiley:

ow, ok, i have not noticed this little detail ^^. Thx.

05/04/15 Bug #3 Located and … Fixed?

Ouch, such a terrible title… And I mean this. I found that the source of the problem in Netbeans was actually a bug fix that was placed into NimROD for some other problem. So, I’ve gutted the bug fix and most likely have reintroduced the previous odd behavior for JScrollPanes. Keep an eye out on this one, I can’t read spanish very well sooo… I don’t know what the bug fix was supposed to be for. I do know that when you grab a JComponent’s size and set it to your preferred size… you can’t really be resized externally by default…

oh well,… If we come across weird stuff, I’ll try to wrangle my brain around it and come up with a better version of whatever bug was trying to be fixed. The fix, I mean… not the bug. :sweat_smile:

And I do want to send a big Thank You out to Emi over at the Netbeans Forum for helping me to find the org.netbeans.swing.etable and outline classes. It helped me to trace down this one.

Anyways, the vid!

and the update!

If this version is accepted as “good stuff” then I will roll with it, tidy it up, put the release ribbon on it and call it good.

edit: yeah… er bug #1 … lol… if it’s not a big one, I’m fine with it.

Then I can get back to making video game and some serious video love for JME. woot!

Game On,
Charles

1 Like

Cool.
I’ll test it tonight and I guess we can call it done.
Bug #1 is really minor so don’t bother. You already spent a lot of time on it and the result is really great!

1 Like

Ok I’ve tested it and it works.
Sounds like you got throught this. Nice Work :wink:

Awesome! I’ll tidy up the project and set it to release.

edit: and done

Could I suggest you copy and paste those Spanish comments to the forum for someone to translate for you. There must be at least a couple of dozen Spanish speakers that could do the translation; and you could change the comments in the code back to English … or have both.

I speak Brazilian Portuguese, so I could have a go at it, if there are no other takers. But I am confident there will be lots of help available from our Spanish speaking friends.

Great to see the DarkMonkey project finished. Commendable effort !

Sure thing, @alfinete :smiley:

this is the comment that I would love translated, maybe I could help Nilo with a more elegant solution.
The complete code can be found in folder com.nilo.plaf.nimrod NimRODJScrollPaneUI.java
and here’s a convenience link to that snapshot:

    // Esto es para solucionar un bug encontrado por Fabian Voith que consiste en que cuando se cambia el 
    // tamaño del JScrollPane se reevalua el tamaño necesario, lo que puede provocar un relayaut si ha cambiado
    // el tamño de lo que contiene, por ejemplo, si se despliegan unos nodos en un arbol...
    // Para solucionarlo se guarda el tamaño del scrollpane al empezar a pintar y se pone al terminar.
    // Gracias a Fabian Voith.
    Dimension dim = sp.getSize();
    ... some other code n stuff ...
    // Aqui se vuelve a poner el tamaño que tenia al principio, por el bug ese descubierto por Fabian Voith.
    sp.setPreferredSize( dim);

sp is a (JScrollPane)JComponent… the case that weirded Netbeans out is that sp in this case was actually a popup tooltip… soo… the JScrollPane got locked into the same size as the tooltip.

But yeah, I would love to write a better solution to share with Nilo, if I could. :smiley:

// This is to fix a bug found by Fabian Voith that consists on when you change the size of the 
// JScrollPane the necessary vallue is re-evaluated, which can create a relayout if the size of what it contains
// has changed, like for example, if the nodes of a tree are opened...
// To solve this the size of the scrollpane is stored when it begins the displaying and refreshed when it ends.
// Thanks to Fabian Voith.
Dimension dim = sp.getSize();
... some other code n stuff ...
// Here we put again the original size due to the bug found by Fabian Voith.
sp.setPreferredSize( dim);

Roughly translated. I hope it helps

Awesome! Thanks Bloodwalker! :smiley:

So, this was just an optimization? I believe that invalidation of contents should cause a relayout to occur, especially if internal contents have shifted. Hrmmm… yeppers, I’ll give this one a pass as good from my side as that re-evaluation just slows down things. LOL. However, I’ll keep this one in mind if anyone does actually have problems with JScrollPanes. Probably like reinstating this bug fix with a check for instanceof JScrollpane on the incoming JComponent, to keep it from locking down on that pop-up variables watch. I’ll definitely put this down on things to watch for, and not worry about it until someone brings in the dreaded “test case” lol.

Well… I don’t want to ruin the fun, but after installing darkmonkey my jme looks like this:

I have to say, that I have also installed EZ Charcoal. Maybe that is the issue?

To fix it, I have to go into folder Preferences and edit “laf.properties” and remove darkmonkey :frowning:

Are you using the SDK built from the master branch or standard 3.0 distrib?
Because it will only work with the one from the master.