Extending functionality of SynthTreeUI

I am attempting to build a custom JTree component that needs to dig its claws into the UI. Unfortunately this doesn't seem possible with Synth/Nimbus as it is with Metal. MetalTreeUI is public so I can create:
class MetalXTreeUI extends MetalTreeUI {}But SynthTreeUI is package private :(
Perhaps there is a better approach to what I am trying to accomplish so allow me to explain. I have created a custom JTree that uses a JList to render its nodes when the node is an instance of ListModel. The purpose is to display a data structure consisting of groups of large lists. A JTree is used so the a list can be shown/hidden by expanding/collapsing its parent. The JList used to render the lists uses the HORIZONTAL_WRAP layout mode to make the most of the space available. Here is a screen shot of my testing app so that you can visualize what I am probably not explaining very well:
http://img4.imageshack.us/i/treelist.png/
The reason the UI needs to be involved is to handle selection changes. The details are quite a bit nostalgic so I won't go into them. But it suffices to say that with MetalTreeUI, it's quite simple, just put the details of the selection change implementation into
protected boolean startEditing(TreePath path, MouseEvent evt)and
protected void completeEditing(boolean messageStop, boolean messageCancel, boolean messageTree)as a JList is used as the editor for the ListModel nodes so that the elements in each list can be individually selected and so forth..
But Synth/Nimbus seems to forbid any ruffling of their handiwork.

OK, just kidding about overriding that completeEditing method. That was from an old version that didn't keep track of whether a JList node had any selected elements in real time.
Anyway, the aforementioned nonsense aside, the old way is much better than the new way which attempts the same bag of tricks without interfacing with the UI. But this seems to be a necessary evil as I haven't seen any way to interface with SynthTreeUI. That is bad form on the part of the Synthites IMO. And bad forms beget bad forms (especially with the aid of alcohol) so hence the following:
An editor is used to hijack the selection handling for all nodes. A regular TreeCellRenderer is used as the editor component for regular nodes and a JList for list nodes, so the tree is not really editable. The problem with this is that the event that triggered the editing needs to be analyzed to check if it is a MouseEvent and if it is, if it is a multi-select event, toggle-selection event or regular select event. Since this is done in the editor and not the UI, the isMultiSelect(MouseEvent) and isToggleSelection(MouseEvent) methods are inaccessible. I have to determine my own conditions...
And there are various other details that really ought to be done directly in the UI. For instance, when the tree is resized, a node changed event has to be dispatched for each list node to the UI so that it will relayout the lists based on the new size of the tree. Before I could send this only to the UI's tree model listener, but now I have to use valueForPathChanged on the tree model and hope that it sends the appropriate event to all its listeners.
Is this really the way it is suppose to be? Seems to me that Nimbus' mantra of being highly customizable is a bit misleading :) Yeah... maybe if you are into painting.

Similar Messages

  • I want a router in N-standard which support extend-function. Which product should I buy?

    Hi.
    I want to establish a new wireless network in my house because my old router are crashed after a stroke of lightning. My old router was a Netgear RangeMax Dual Band Wireless-N (WNDR3300). I live in a big old house and my problem with this and my older Linksys router was that the signal could not reach in the ends of the house even though the router was placed in the middle of the house.
    I have heard that you can extend the wireless-signal if you put an extra router (in extend/repete-mode) halfway to the end of the house and this without cables between the "main router" and the secondary router that you have set at extend-mode. Is this correct and if so which Linksys routers supports this extend-function in N-standard (I would like to have the possibility to stream music at the network and I have read that the N-standard would be best to this) and is it the same model I should by for the "mail router" and the router there may be in extend-mode?
    Thanx for your help (-;
    BR
    Jan

    The Linksys router will not work wirelessly with another router with the linksys firmware installed in it.You need hardwired both the router together or need to installed the third party firmware on it.I would suggest you to go for WAP200E Access Point which will work as repeater mode.

  • Extended functions of Info Sets

    Hi Experts,
    what are Extended functions of Info Sets .....Could you plz explain me.
    Regards
    Venkat

    hi,
    we use cubes also in  an infoset like as data store object.
    SAP does not generally support more than two InfoCubes in an InfoSet. If you include more than two InfoCubes in an InfoSet, the system produces a warning. There are several reasons for this limitation
    see this link u get more information for infoset.
    http://help.sap.com/saphelp_nw70/helpdata/EN/42/ca6a69992f6bb1e10000000a1553f6/frameset.htm
    hope its help to u.
    plz assign points if its solve your query.
    thanks,
    suresh.
    Edited by: sureshkumar gedela on Feb 25, 2008 12:03 PM

  • Can't download extended function program

    I can't download evernotel's webclipper.  I already followed the suggestion made by evernote technician that I deleted all related file and programs related to evernote (using appcleaner, empty trash can), restarted Mac, reinstall evernote, and then downloaded webclippers installation file.  When I hit "install" key, a window pops out telling me "unable to install this extended function".  I was unable to install another program, fastestbue, which was another extended program for safari.  I doubt that was because I had Kaspersky installed in my mac.
    My macair has MAC OSX (10.7.5), safari 6.1.1. 

    A.
    Back up all data.
    This procedure will unlock all your user files (not system files) and reset their ownership and access-control lists to the default. If you've set special values for those attributes on any of your files, they will be reverted. In that case, either stop here, or be prepared to recreate the settings if necessary. Do so only after verifying that those settings didn't cause the problem. If none of this is meaningful to you, you don't need to worry about it.
    I've tested these instructions only with the Safari web browser. If you use another browser, they may not work as described.
    Step 1
    If you have more than one user account, and the one in question is not an administrator account, then temporarily promote it to administrator status in the Users & Groups preference pane. To do that, unlock the preference pane using the credentials of an administrator, check the box marked
    Allow user to administer this computer
    Then reboot. You can demote the problem account back to standard status when this step has been completed.
    Triple-click anywhere in the following line on this page to select it:
    { sudo chflags -R nouchg,nouappnd ~ $TMPDIR..; sudo chown -R $UID:staff ~ $_; sudo chmod -R u+rwX ~ $_; chmod -R -N ~ $_; } 2>&-
    Copy the selected text to the Clipboard by pressing the key combination command-C.
    Launch the built-in Terminal application in any of the following ways:
    ☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
    ☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
    ☞ Open LaunchPad. Click Utilities, then Terminal in the icon grid.
    Paste into the Terminal window (command-V). I've tested these instructions only with the Safari web browser. If you use another browser, you may have to press the return key after pasting.
    You'll be prompted for your login password. Nothing will be displayed when you type it. You may get a one-time warning to be careful. If you don’t have a login password, you’ll need to set one before you can run the command. If you see a message that your username "is not in the sudoers file," then you're not logged in as an administrator.
    The command may take a few minutes to run, or perhaps longer if you have literally millions of files in your home folder. Wait for a new line ending in a dollar sign ($) to appear, then quit Terminal.
    Step 2 (optional)
    Take this step only if you have trouble with Step 1, if you prefer not to take it, or if it doesn't solve the problem.
    Boot into Recovery. When the OS X Utilities screen appears, select
    Utilities ▹ Terminal
    from the menu bar. A Terminal window will open.
    In the Terminal window, type this:
    res
    Press the tab key. The partial command you typed will automatically be completed to this:
    resetpassword
    Press return. A Reset Password dialog will open. You’re not going to reset a password.
    In the dialog, select the startup volume ("Macintosh HD," unless you gave it a different name) if it's not already selected.
    Select your username from the menu labeled Select the user account if it's not already selected.
    Under Reset Home Directory Permissions and ACLs, click the Reset button.
    Select
     ▹ Restart
    from the menu bar.
    B.
    Remove the worthless "Kaspersky" and "AppCleaner."
    Remove "Kaspersky Security" by following the instructions on this page. If you have a different version of the product, the procedure may be different. The product includes a Safari extension that may not be removed by the uninstaller.

  • QRT alert RTMT -- Cisco Extended Function

         Hi All,
    Have been getting this particular alert for a 7937 device -- which has been throwing this particular alert intermittently.
    -/Syslog UC_RTMT-2-RTMT_ALERT: %[Name=ExcessiveVoiceQualityReports][Detail= Number of quality reports exceeds configured threshold during configured interval 10 within 60 minutes on cluster StandAloneCluster. There are 12 QRTRequest events (up to 30) received during the monitoring interval
    AppID : Cisco Extended Functions ClusterID : StandAloneCluster NodeID : HXXXX TimeStamp : Sat Oct 19 18:56:55 CDT 2013 Category : Problems with current call ReasonCode : TimeStamp : 10/19/13 18:56:15 DeviceName : SEP000000000000 IPAddress : 00.000.00.000 DN : 0000 AppID : Cisco Extended Functions ClusterID : StandAloneCluster NodeID : XXXX TimeStamp : Sat Oct 19 18:56:45 CDT 2013 Category : Problems with current call ReasonC! ode : TimeStamp : 10/19/13 18:56:29 DeviceName : SEP00000000000 IPAddress :
    00.000.00.000 DN : 0000 AppID : Cisco Extended Functions ClusterID : StandAloneCluster NodeID
    Reached out to TAC -- they asked for logs -- I need to check before hand the exact cause of this alert as in what triggered this. Have been requested by TAC to check if QRT is enabled -- how can we check that on the device -- as I only see a standard " None" soft key template on the device.
    Appreciate some help on what exactly the alert stands for and what are the steps that can be followed to isolate the issue with this particular alert.
    Whatever level you reach getting better never stops -- Sachin Tendulkar       

    Hi All,
    Can someone please guide on this alert and the steps that are required to troubleshoot the same at the earliest -- would appreciate some assistance on this.
    Whatever level you reach getting better never stops -- Sachin Tendulkar

  • Documentation on extended functions - Siebel

    Pls. anyone has any doc that has some syntax and other details about the BIP extended functions used when integrated with Siebel ?
    I understand they are defined in the XLSFunctions.jar and called thru the psfn: in the field code...
    Txs. for any help.
    Antonio

    The blog has examples and few extension functions too. I dont understand what do you mean by 'no syntax'.
    It has covered steps on usage too.
    For complete list refer MOS note 'Siebel Reporting XSLFunction Methods [ID 1435271.1]'

  • Photoshop CS3 Extended functions don't work

    I just got a copy of Photoshop CS3 Extended.  I am using Windows 7 and it installed fine.  However, I noticed that many functions (i.e Filter Gallery) show up in light gray and can't be activated.  All standard plugins are visible but also can't be triggered.  I am not familiar with Photoshop yet and I am not sure whether I am missing something here.  Any help is much appreciated.
    Thanks

    Thanks a lot or the hint.  Of course I was in 16bits channel.
    Appreciate your help.

  • Extending functionality of JTextField

    Hello,
    Just getting going with swing here. I'd like to make a custom JTextField that handles typing differently (for example, allowing entry of numbers only, or refusing to allow more than 3 characters, etc).
    I've got a good start, but I'm stuck at the KeyListener ActionListener part. Here's some code:
    public class DEField extends JTextField implements KeyListener, ActionListener
    But, in the example I found, the listeners and stuff are handled in the app itself, not in the component:
    http://java.sun.com/docs/books/tutorial/uiswing/events/keylistener.html
    Any guidance is appreciated!
    --- Eric

    Thank you for that tip! Indeed, there it is, as you described.
    Maybe this would be a good place to ask for feedback on what I am intending to build...
    My intentions are to eventually make a highly customizable field for data-entry purposes. I'm starting down this path now. Some features I'll be working on:
    1. A fixed (settable) number of characters allowed, with a beep sounding when characters in excess are entered. When the last character is entered, focus will move to the next field in the tab order.
    2. An automatic drop-down list containing a sorted list of all allowed entries for this particular field. As the user types, the list will shrink in number, and scroll to center the current selection. Pressing ENTER will select the one that is currently selected, while the up and down arrow keys will scroll the list.
    3. The field will be a certain length (say, 20 characters), regardless of how many characters are allowed to be entered into it (say, 4 characters). If a fixed number of characters are required, then there will be a colored box surrounding the space where each character will go.
    4. Configurable at runtime to allow restrictions on allowed characters, color of the border, etc.
    5. Accessibility features enabled.
    There are probably a few more requirements that I haven't thought of yet, but does this basic description sound reasonable in Java? Is extending the functionality of a JTextField the right way to approach this, or do you think I'd be fighting an uphill battle? Perhaps I should implement it from a more abstract class?
    Thanks! --- Eric

  • Extending functionality from existing custom taglib

    Hi!
    I'm trying to extend the functionality of an already existing custom taglib. To test this possibility I�ve so far created a small taglib containing two tags. QbeTag.java and QbeSumTag.java.
    The QbeTag class handles a database connection and constructs a table showing the result of a query passed in as an attribute in the tag. (The database contains a �dummy table� holding information about persons.)
    Now let�s pretend that I don�t have the source code for the QbeTag but need to/ want to extend its functionality. For instance:
    In the QbeSumTag I want to summarize all the persons ages and present it in a new text field somewhere else on the page.
    To do this I probably need to access the QbeTag class from the QbeSumTag class, or is there any other way to achieve this wanted functionality?
    Up to this point:
    What I�ve tried is to implement the QbeSumTag so that It extends the QbeTag class. This means that I now can access the doStartTag, doEndTag, and so on methods from the QbeSumTag by typing super.doStartTag().
    The problem with this approach is that this way only gives me the possibility to run the methods not altering the process it self and I can�t alter the out stream. A syntax like:
    public int doStartTag() throws JspException
    return super.doStartTag();
    Will only result in a call for the QbeTag�s doStartTag() method to run and do it�s stuff.
    Is there any way I can solve this or am I stuck? Maybe one approach would be to nest the QbeSumTag with the QbeTag wich would mean that there will be a dependency between the tow tags.
    I believe that this question is quite difficult to answer but it could be the starting point for an interesting discussion. Hasn�t anyone tried to extend the functionality of the Jakarta taglib, say the DB tags or Mail tag.
    All thoughts and replies will great fully received.
    /Daniel

    Well, the answer to this is the same as the answer to extending any third party classes... it depends on how the original class was created.
    If the original class was designed with extension in mind, then (hopefully) its realy functionality will be isolated to a series of protected methods (that you would have access to) and private methods (you would not have access to).
    You would use the public and protected methods to retrieve the data you need to do your work, or override those ones whose work you want to replace (for instance, if it has a protected displayOutput(Map dataMap) method, you are in luck!).
    If everything is done giving you know access to the pieces, then you may be stuck providing a tag that has the original tag nested inside it. Buffer the output from the original tag and parse it, retrieving the info you need, then output your own stuff...

  • Can I extend functionality of Portal Reports / wizard?

    Is there a way to extend the functionality of Portal Reports? I'd like to add some output formatting options to the existing Portal reports functionality, and I don't want to write a complete portlet to do it. I know that I can edit the package after the wizard creates it, but if anyone runs the wizard again, I'll lose my modifications. Can I modify the code generator/wizard?
    Thanks

    Is there a way to extend the functionality of Portal Reports? I'd like to add some output formatting options to the existing Portal reports functionality, and I don't want to write a complete portlet to do it. I know that I can edit the package after the wizard creates it, but if anyone runs the wizard again, I'll lose my modifications. Can I modify the code generator/wizard?
    Thanks

  • Need to extend functionality in VM below ribbon

    Hi,
    I want to extend the VM resource provider to add some more functionality like VM upgrade. This I want to add along with Start, Stop, Checkpoint buttons. Is it possible to extend the below ribbon to add more such options. Any link will be useful.
    Regards,
    Umesh

    I suggest that you start with the API reference: https://msdn.microsoft.com/en-us/library/dn448694.aspx
    Some capabilities are available in the API today, but not exposed in the portal. 
    If you need to extend the WAP solution, there's several ways to do so, like creating custom resource providers or interact with the native API's from other angels. 
    -kn
    Kristian (Virtualization and some coffee: http://kristiannese.blogspot.com )

  • Extend function in pl/sql table

    declare
    type aar_test is table of varchar2(100)
    index by binary_integer;
    aar_main aar_test;
    begin
    aar_main.extend;
    aar_main(aar_main.last) :='Extend Cell';
    end;
    it's return a error....it is possible??? if yes how...plzzzzzzzz help me...

    Hi..
    Please go through this...!!
    EXTEND
    This procedure has three forms. EXTEND appends one null element to a collection.
    EXTEND(n) appends n null elements to a collection.
    EXTEND(n,i) appends n copies of the ith element to a collection.
    EXTEND operates on the internal size of a collection.
    If EXTEND encounters deleted elements, it includes them in its tally.
    You cannot use EXTEND with associative arrays.Regards
    KPR
    *If this response is correct then mark it as correct answer.
    *If this response is helpful then mark it as helpful answer.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Extending functionality of a button in pagebuttonbar

    Hi,
    I'm trying to customize "Create Customer" page in R12. The page has "Apply" button in pagebuttonbar. Based on "Profile Class" value entered in the create page, I need to create some child records like customer relationships. For this, I think I need to create a new row in the VO and set the values. I dont have the RelationshipVO attached to the AM. Moreover, the AM with buttonbarRN is the root AM of the page and cannot be extended. Can anyone please help me out in finding the solution for this scenario.
    Thanks,
    Bharath

    Yup, now it makes more sense. But still I feel that if all the further pages are part of same business logic, then there should be a common AM.
    Anyway, if you look for the root AM extension issue resolution, that will solve this scenario also :)
    --Shiv                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Proposal to extend dialer functionality (english and other language for T9 search in dialer)

    Hello.
    Here is a proposal to extend functionality of dialer.
    In current version T9 dialer language is set to english (always) + some other language (optional ONLY IF menu's language is different fron english).
    For example.
    Menu language - english, dialer T9 - english.
    Menu language - russian, dialer T9 - english + russian,
    Please add possibility to choose language for T9 dialer with menu's language set to english. It is usual option to other dialers.
    I want to use english language for phone, but i need both english and russian for T9 dialer. 
    You need just to add option to dialer's preferences to add T9 language independently to menu's language.
    Can you do it in further updates?
    Thanks.

    There is no settings for this as standard in the phone. 
    I will pass your feedback on internally. 
    For more information about language specific questions I suggest that you contact your local support: 
    http://www.sonymobile.com/global-en/support/contact-us/
    What are your thoughts about this forum? Let us know by doing this short survey.

  • Help Needed With "Extend Marker" Function Not Working

    I have several Clips and used the "DV Start/Stop Detect" function to find the time code breaks, which seems to work well. I've now got a clip full of Segment markers.
    The problem arises when I try to use Extent Markers "Option + `" to make subclips. When I put the play head on a subsequent marker, the Marker/Extend function is grayed out.
    Extending a marker that I have created using the M key works perfectly.
    Why can I not use the Extend function on Segment Markers?
    Any help on this is greatly appreciated. I have 30 odd clips that I need to set up segments for, and doing it manually will add hours to my workload.
    Thanks
    Gary
    Dual G5 2.5 GHz Dual Core, 2.5 GB RAM, 500 GB HDD   Mac OS X (10.4.3)   Final Cut Studio FCP 5.0.4

    Thanks for the reply.
    I am completely aware of items 1 through 3, and never Extend markers in the Timeline. Only the Viewer.
    To perform an Extend Marker and avoid headaches, load the captured clip - the one with the video icon in the Browser - into the Viewer. Then, as you scrub along in the Viewer, Option-` as needed.
    That is precisely what I am doing.
    To Extend the marker I first double click the clip to load the entire clip into the Viewer, where all the Section markers are displayed. I then check Mark>Markers>Extend and the function is grayed out. However, if I move the playhead one frame prior to the Section marker, the previous Section marker extends to the frame prior to the new play head position.
    If I do this with manually entered markers (using the M key, creating Marker 1, 2, 3.... in sequence on the Viewer timeline), then the Previous marker is extended to the frame immediately prior the the current play head position - i.e. from Marker 1 to Marker 2. I do not have to move off the Marker 2 position to be able to extend Marker 1.
    Also, simply selecting all your Markers and either dragging them to another bin (or pressing Command-U) does not produce the needed subclips?
    Of this I am also aware. I find the Command-U process just confuses the issue, creating more clips to manage (others may disagree). I prefer to simply drag the "Subclips" directly from the Main clip into a Timeline.
    Because you're doing all this to get subclips, right? Or wrong?
    If I understand your reply correctly, I think you misunderstood my problem. I have been using subclips for several years, and find them VERY useful, especially with multi-camera shoots. So, I am quite familiar with creating and extending markers.
    I just started experimenting with the Detect feature and find it works quit well (most of the time). My problem is that the Segment markers created by the Detect process, do not perform the same as manually place markers, as far as the Extend marker function is concerned, anyway.
    BTW - By using the TC display in my Panasonic PV-GS400 Camera, and sending the FCP video via Firewire to the camera, the camera displays the TC on the captured clip, which I then rename the marker to for TC reference. As long as the Date/Time on the cameras are properly synced, syncing clips in the Timeline is a breeze!!
    Anyway, to clarify, my process is as follows:
    1. Capture a clip.
    2. Display the clip in the Viewer
    3. Select "DV Start/Stop Detect" and watch as the section markers appear in the Viewer.
    4. In Viewer, place play head on the first Section marker
    5. Press the M key to Edit Marker.
    6. Change the Name of the marker to the timecode of the Marker now displayed in the Camcorder window.
    7. Use Shift-Down Arrow to move to the next Section Marker
    8. Press Option+` to Extend the previous marker - which does not work and is grayed out in the Mark>Markers>Extend menu.
    9. Back to step 5.
    This process works perfectly with manually created markers. Because the Extend works if I move the play head one frame prior to the current Section marker, this tells me there is something "special" about the Section marker that disables the Extend function, unlike a manually created marker.
    BTW - If I delete the Section marker, and create a manual marker at the same frame, the Extend marker function works again. Again, indicating that Section markers are different somehow from manual Markers.
    Hopefully, this wordy explanation of my process clarifies my problem.
    Aside: The clips are supplied to me by a customer on a 500GB FW800 drive. FCP5 was used to capture the clips from the original Tapes (which I do not have access to). I am the editor for the project.
    Thanks again for the reply. It is greatly appreciated. If there is any other info that I have missed that will help figure this out, please let me know and I will post a response a quickly as possible.
    Gary

Maybe you are looking for

  • How do I use Display Dialog to get back a date?

    Can anyone tell me how to use Display Dialog to get back a date? I am using the following code that does not work. It does not accept anything.  And I have searched high and low for an answer to my question and found nothing. repeat        display di

  • ISight not working (photo attached)

    Recently my built in iSlight is not working.. I follow the tip: When I turn my mac on, I have hold the power button for 5 seconds. I really did.... But then my Photo Booth or FaceTime is work just for 10 to 15 seconds before it's going off... What i

  • Bangladesh Grey Hat Hackers on my MacBook Pro

    I was working on several tabs in Firefox on my MacBook Pro 13".  When I returned to one of the tabs, there was what appeared to be a giant pop-up with a message / warning from the Bangladesh Grey Hat Hackers saying my MBP had been hacked.  It had my

  • How to do another thing before returning of a buffered waveform generation?

    Hi There, The DAC0 and DAC1 of PCI-6024E are used to generate waveforms by the buffered analog output mode. We know that before the buffered generation is completed, the starting function of generating waveform, either "WFM_op" or "WFM_Group_Control"

  • Using script labels

    I have a script that opens an Indesign CS4 pages, creates a rectangle and places an image in the rectangle.  This part works great.  What I would like to do is to have the image placed in an existing box that has been labeled using a scipt label.  I