Update JTree when model changes

Hello!
I'am doing a webbrowser that stores the history in a JTree that is visible in EAST in the browserFrame.
The history is updated when a link is clicked or it is typed in the addressbar. Everything works for the moment but it's quite ugly i guess...
For now i do tree.updateUI(); in the view everytime I have added a node, but I want to remove tree.updateUI() and update the view automaticly whenever the model has changed.
Is nodesWereInserted() the right function to use?
I have tried to use this listener in the HistoryModel(after removing tree.updateUI()) but the JTree acts very strange then...
thanks for any help :)
Fredrik
////////////THE LISTENER THAT I HAVE TRIED TO USE IN THE HistoryModel
    class MyTreeModelListener implements TreeModelListener {
        public void treeNodesChanged(TreeModelEvent e) {
            DefaultMutableTreeNode node;
            node = (DefaultMutableTreeNode)
                     (e.getTreePath().getLastPathComponent());
             * If the event lists children, then the changed
             * node is the child of the node we've already
             * gotten.  Otherwise, the changed node and the
             * specified node are the same.
            try {
                int index = e.getChildIndices()[0];
                node = (DefaultMutableTreeNode)
                       (node.getChildAt(index));
            } catch (NullPointerException exc) {}
            System.out.println("The user has finished editing the node.");
            System.out.println("New value: " + node.getUserObject());
        public void treeNodesInserted(TreeModelEvent e) {
            DefaultMutableTreeNode node;
            node = (DefaultMutableTreeNode)
                     (e.getTreePath().getLastPathComponent());           
            int index = treeModel.getIndexOfChild(node.getParent(), node);
            treeModel.nodesWereInserted(node.getParent(), new int[] {index});
        public void treeNodesRemoved(TreeModelEvent e) {
        public void treeStructureChanged(TreeModelEvent e) {
        }////////////////THIS IS THE VIEW CLASS
package freebrowser.gui;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeSelectionModel;
import freebrowser.model.HistoryModel;
import freebrowser.model.LinkInfo;
import freebrowser.types.Browser;
* This class represents a JTree with a domainname as children and url:s in its leafs.
* @author dalen
public class HistoryTree implements TreeSelectionListener {
    private JTree tree;
    private Browser browser;
    private ArrayList currentPageLinkInfo;
    private URL browserCurrentUrl;
    private HistoryModel historyModel;
    public HistoryTree(Browser browser, HistoryModel historyModel){
        this.browser = browser;
        this.historyModel = historyModel;
        //Create a tree that allows one selection at a time.
        tree = historyModel.createJtree();
        tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
        //Listen for when the selection changes.
        tree.addTreeSelectionListener(this);
     * This function is called when a link has been clicked.
     * @param url - The <code>url</code> that has been clicked
    public void newPageClicked(URL url){
        Iterator it = currentPageLinkInfo.iterator();
        while(it.hasNext()){
            LinkInfo info = (LinkInfo)it.next();
            if(info.getUrl().equals(url)){
                historyModel.addNode(info, browserCurrentUrl);
                tree.updateUI(); /// this is what I want to remove!
                break;
     * Adds a node to the tree if a url has been entered in the addresfield
     * @param url
     * @param title
    public void addressBarPageEntered(URL url, String title) {
        LinkInfo info = new LinkInfo(url, title);
        browserCurrentUrl = url;
        historyModel.addNode(info, browserCurrentUrl);
        tree.updateUI();/// this is what I want to remove!
     * Helps the <code>HistoryBar</code> to be updated with the current url.
     * @param url - The curren <code>url</code> in the browser
    public void setHistoryCurrentPage(URL url){
        LinkInfo info = new LinkInfo(url, null);
        currentPageLinkInfo = info.getLinkInfos();
        browserCurrentUrl = url;
     * Invoked by TreeSelectionListener when a node has been clicked
    public void valueChanged(TreeSelectionEvent e) {
        DefaultMutableTreeNode node = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
        if (node == null) return;
        Object nodeInfo = node.getUserObject();
        if (node.isLeaf()) {
            LinkInfo linkInfo = (LinkInfo)nodeInfo;
            System.out.println(linkInfo.getUrl());
            browser.setURL(linkInfo.getUrl());
     * Function to recieve the JTree
     * @return The <code>tree</code>
    public JTree getTree() {
        return this.tree;
}/////////////THIS IS THE MODEL CLASS
package freebrowser.model;
import java.net.URL;
import java.util.Enumeration;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
* This class holds the infomation of the historytree. It is stored in an array containing <code>Nodes</code>.
* @author dalen
public class HistoryModel {
    private DefaultTreeModel treeModel;
    private DefaultMutableTreeNode rootNode;
    public HistoryModel() {
        rootNode =  new DefaultMutableTreeNode("L�nkHistorik");
        treeModel = new DefaultTreeModel(rootNode);
     * Adds a node in the right place in the model
     * @param info - The <code>info</code> to be added.
    public void addNode(LinkInfo info, URL browserCurrentUrl) {
        //l�gg till noden p� r�tt plats i modellen
        Enumeration e = rootNode.children();
        DefaultMutableTreeNode category = null;
        DefaultMutableTreeNode urlLeaf = null;
        boolean newNodeSet = false;
        while(e.hasMoreElements()) {
            DefaultMutableTreeNode childToCheck = (DefaultMutableTreeNode)e.nextElement();
            //check if the domainname already is in the tree
            if(childToCheck.toString().equals( browserCurrentUrl.getHost()) ){
                urlLeaf = new DefaultMutableTreeNode(info);
                treeModel.insertNodeInto(urlLeaf, childToCheck, childToCheck.getChildCount());
                newNodeSet = true;
                break;
        if(!newNodeSet) {
            category = new DefaultMutableTreeNode(new LinkInfo(null,browserCurrentUrl.getHost()));
            DefaultMutableTreeNode parent = (DefaultMutableTreeNode)treeModel.getRoot();
            treeModel.insertNodeInto(category, parent, parent.getChildCount());
            urlLeaf = new DefaultMutableTreeNode(info);
            treeModel.insertNodeInto(urlLeaf, category, category.getChildCount());
        ((DefaultMutableTreeNode)treeModel.getRoot()).setUserObject("L�nkhistorik (dom�ner: " + rootNode.getChildCount() + "  l�nkar: " + rootNode.getLeafCount() +")");
     * Creates and returns a JTree built on the model from createJTreeModel()
     * @return The new JTree
    public JTree createJtree() {
        return new JTree(treeModel);
}

Nevermind, I solved it by my self :)
added treeModel.nodeChanged(node); after insertNodeInto()

Similar Messages

  • Cocoa Bindings don't update UI when Model changes?

    Has anyone found a solution to this problem? I read all the Troubleshooting info at Apple and just about wore out the KVC/KVO and Cocoa Bindings documentation.
    I've got one TableView that updates fine, and two others that don't when the Model is modified.
    The Model: class VoterController, the variable is an NSMutableArray "playerArray" that contains 7 NSMutableDictionaries, read in from an XML plist. I set the @property and the @synthesize for it. You can't bind a Model, so no bindings for the array.
    The View: an NSTableView with one column. The column is bound to the voterController listed below.
    Column Binding:
    Bind To: voterController
    Controller Key: arrangedObjects
    Model Key Path: playerName (a key in each dictionary)
    The Controller: an NSTableViewController, class NSTableViewController.
    Bindings for this controller:
    Bind To: mainController
    Model Key Path: playerArray (the NSMutableArray)
    Controller "mainController":
    A simple NSObject (not an Object Controller despite the name) that has its class set as "VoterController", which is the class of the Model object (the array of dictionaries).
    Now the thing that has me stumped is that this NSTableView reads the Model data fine but does not respond to changes in it. In other words, if I delete one of the array elements, it does not show up in the View until I re-launch the app and it reads the changed XML from disk.
    Even more strange, I have another tableView that DOES dynamically change as I change values for any of the keys in the dictionaries that are the elements of the array. This working tableView has the bindings for each of its 5 columns as follows:
    Bind To:voterController
    Controller Key: arrangedObjects
    Model Key Path: playerName, voteCount, role, etc. for each column. Each of these is a key in the dictionaries. If I change programmatically any of the values of these keys, they are immediately changed in the View.
    Apple says the most common reason for Views not updating is non-KVO compliance in the model property. I have the array @property and @synthesize compiler directives, and one View updates and another does not, on the same controller.
    I dunno - I don't expect a solution but any tips I will rush off and try. Thanks in advance.

    "Is this because VIs which use ConfigData_v1.ctl were not loaded into memory at the time when I made the change to the typedef?"
    In short: Yes. Only the callers in memory are updated.
    =====================================================
    Fading out. " ... J. Arthur Rank on gong."

  • ADFf 11g, view does not refresh when model changes

    Hi,
    I am really missing something about adf faces (jdev 11.1.1.3.0).
    I have a web app, with jspx, tabpanels and pojo data controls.
    Since there is a complex logic to open new pages/tabs, sometimes I have to open new pages/tabs programmatically, and also sometimes I have
    to refresh the model behind pages/tabs programmatically.
    When I say "programmatically" I mean that the model refresh is not started by an user action on the webpage, but is started by logic in the model layer
    (say, for example, you receive a JMS message and you want to reload the content of an entire page).
    I can succesfully update the model, using debug println I can see the model is updated, but there is no way I can update the view.
    I tryed with the "addPartialTarget" code and so on, but it does not work.
    I've also bought and read "Oracle JDeveloper 11g Handbook" and "Oracle Fusion Developer Guide", but I can't find anything that can help me.
    Can someone explain me: what am I missing? I am sure there is some concept in ADF Faces I missed: this framework is too
    big not to offer what I need, so I miss something for sure.
    I hope to get an answer, I hope Shay reads this too.
    Thanks all.

    Hi,
    Active Data Services (chapter 20 in the book) is what would allow you to synchronize the screen with the model changes. The problem you face is because the data you see is what is stored in the iterators of the binding layer. An alternative solution to using ADS is to use an af:poll component that refreshes the display component when the model has changed. For this your model exposes a method that returns a time stamp that changes whenever the data has changed. Upon af:poll expiring, it calls a managed bean method, which - through the ADF binding layer - checks for the time stamp and compares it with a local saved copy (whenever the time stamp has changed, the client side will e.g. write it to the viewScope or pageFlowScope). If the time stamp has changed, the managed bean re-executes the method populating the iterator for the UI components and then issues a partial refresh of the component(s). Instead of PPR'ing each component in turn, you can try setting the ChangeEventPolicy property of the iterators to ppr"
    This should solve the problem. The latter example is also explained in chapter 20, but for ADF BC
    Frank

  • Why do screen updates fail when MacOSX changes location?

    With Firefox 4.0, when I change MacOSX system location (host name and IP), the Firefox screen no longer updates. It does appear that link selections are followed. My current work-around is to quit and restart Firefox losing all session state. Changing MacOSX location did not appear to effect Firefox 3.

    The issue appears to have been resolved in the production release. Perhaps it was in some way related to the beta feedback plugin.

  • How to update collection when checkbox changed in report

    I have a report based on a collection:
    select seq_id
           ,c001
           ,c002
           ,apex_item.checkbox(1,seq_id,decode(c003,'J','CHECKED','UNCHECKED')) selected
    from apex_collections
    where collection_name='CONCOLLECTION'When the checkbox changes I want to store the new checked/unchecked status in the collection.
    Steps towards a solution I've come up with:
    1 Create a dynamic action: Change, jquery selector : input[name="f01"]
    2 Create javascript to store value (=seq_id) of changed item into a hidden page item.
    3 plsql code to update collection member with seq_id that is now in hidden item.
    Is this the way to do it?
    If so, it's the javascript of step 2 that I can't figure out.
    thanks, René

    thanks this works.
    Using javascript I store the seq_id and the checked value in 2 page items
    $s('P70_SEQ_ID', $(this.triggeringElement).val() );
    $s('P70_CHECKED', $(this.triggeringElement.checked).val() );The checked value I get is <empty> when checked and 'undefined' when unchecked. Based on this I can now update the collection.
    declare
      l_selectie varchar2(1);
    begin
      if v('P70_CHECKED')='undefined'
      then
        l_selectie := 'N';
      else
        l_selectie := 'J';
      end if;
      apex_collection.update_member_attribute(p_collection_name => 'CONCOLLECTION'
                                                 ,p_seq             => v('P70_SEQ_ID')
                                                 ,p_attr_number     => 3
                                                 ,p_attr_value      => l_selectie);
    end;

  • My TOC does not update automatically when I change the header text of a chapter

    Some chapters do; others don't. Anybody?
    Thanks

    The current version is 10.2.2, and that's why your iTunes hasn't automatically updated. Any currently available version of iCloud is a beta only, and so iTunes will not automatically update via Software Update
    When you do update, you won't lose any of your current iTunes Library. If you want to be sure, back up the library which, by default is in <your user name>/Music. If you copy the whole /Music folder, you'll be absolutely sure.

  • MIRO, automatic update Amount when quantity was changed

    Deal all,
    How to make automatic update in line item MIRO, when i change the Quantity then the Amount must update by automaticly, in current system i always change by manualy
    thanks
    imron

    Dear Krishna
    I know that the price may change and hence the amount field is kept open for changes, but i want the amount can update automaticlly when i change qty because when we create invoice (MIRO) the quantity not always same with total PO qty (partial invoice), maybe you can look this my illustration :
    1 . PO number = 4500000001
         Qty            = 5
         Price         = 10
         Net Price   = 50
    2.  GR number = 5000000001
         Qty       = 2
         Amount in local currency = 20
    3.  GR number = 5000000002
         Qty       = 3
         Amount in local currency = 30
    4.  create Invoice (MIRO)
          Qty =5 -->this default by system, (now we want to change to 2, for invoicing PO number one)
          Amount = 50 --> this default by system (we want this amount automatclly to become 20)
    5. create second invoice 
    Regrads
    imron
    Edited by: Muhammad Nur Imron on Jan 24, 2008 3:17 AM

  • Time Quotas Updation when EE change from one grp to another group

    Hi Experts,
    Actually I have Two Quotas "A and B " in my Project will be updated based on EE Subgrp on monthly bases
    when EE change EE subgrp in the mid of Month will new quota get generated or not ?
    if Yes, how the process of Quota Updation please let me konw.
    Thanks
    Sreeni

    Hi
    Please make your Question more clear and Try to generate absence Quota through the Tcode pt_qta00 in Test mode and check the result.
    Regards
    Suresh.V

  • Old project with entity 4.0 breaks when adding new model or updating an existing model.

    i have an old 4.0 project that was using entity 4.0
    in VS2013 if I try to update an existing model or add a new one, it will forcefully install the entity framework 5.0 even though the selection in the box was to use 4.0
    it goes out to nuget to do this and then it will forever add 5.0 even if I uninstall it.
    5.0 getting installed completely breaks my application. References to tables disappear and cross reference for NO reason at all with another model.
    How can i get it to just let me use 4.0 so I can move on OR how can i upgrade my old model into 5.0?
    I'd rather not got tthe 5.0 route because that changes a lot of the ways things were done and would break even more code.

    Hello,
    >>in VS2013 if I try to update an existing model or add a new one, it will forcefully install the entity framework 5.0 even though the selection in the box was to use 4.0
    It is not very clear how you install the Entity Framework, as far as I know, the EF version 4.0 is available with .NET 3.5, from .NET 4.0, it will use the 5.0 by default, if you want to use the EF 4.0, you could change the target to .NET 3.5.
    >>How can i get it to just let me use 4.0 so I can move on OR how can i upgrade my old model into 5.0?
    If it is EF 5.0, as far as I know, it uses the DbContext API instead of the original ObjectContext API(the EF 4.0 uses this API) which provides a better performance, if you want to keep to use ObjectContext API, you could follow this article:
    Reverting Back to ObjectContext Code Generation
    The article shows the configuration for VS2012, for VS2013, you could change the Code Generation Strategy from T4 to Legacy ObjectContext.
    Regards.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • My itunes account was for uae store and i change it to the usa store  by a itunes gift card , When i change it i lost all of my purchased and i cant do any updates to the apps what should i do to get them back

    1- My itunes account was for uae store and i change it to the usa store  by an itunes gift card , When i change it i lost all of my purchased and i cant do any updates for  the apps and games  what should i do to get them back .
    2- Can I Transfer the amount to another Account .
    and thnx

    Call Apple sales support. Something apparently went wrong in your transaction. In the USA the number is 1-800-676-2775.
    Best of luck.

  • Why doesn't the local news part of the bbc news website update when content changes?

    i have BBc news as my home page and in Internet Explorer it updates regularly to show changes to local news headlines but this doesn't happen in Firefox. i have to change my location to get the lasetst local headlines. the only person who has enquired about this problem a few months ago seemed not to have resolved it. does anyone have any idea what i can do or should I just go back to using IE?

    This url was not asking for a location: [http://www.bbc.com/news/]
    You can change it to never ask for the location with these steps:
    # Click on the padlock or globe in the url bar
    # Click on "More Information"
    #Click on Permissions
    #Uncheck Use Default under Access Your Location and click "Allow"
    Restart Firefox, when you start it does the news refresh?

  • Itunes 10.6.3 - Just update to the new Itunes and the album artwork is not sticking anymore... I upload the artwork and when I change songs and go back the art is gone. Anyone with similar issue ?

    Itunes 10.6.3 - Just update to the new Itunes and the album artwork is not sticking anymore... I upload the artwork and when I change songs and go back the art is gone. Anyone with similar issue ?

    I have this issue.  Album artwork was totally fine before.  After this update, it is all messed up and even got messed up when transferred to my iphone.
    iTunes doesn't have the artwork anymore, but then iPhone has it but shows wrong artwork with wrong albums.
    Please fix!

  • When I changed my ATT email password, I can no longer open my email in my Iphone, even after updating my password. What do i need to to do?

    When I changed my ATT email password, I can no longer retreive my email on my Iphone, even after updating my password in my Iphone. What's wrong? How do i fix it?

    make sure the outgoing (smtp server) has the updated password also. settings>mail,contact,calendars>then at account>it will say outgoing, smtp or advanced. after clicking on the smtp it will have an option to change that password, delete it and add ur new one

  • Hi, I've a 3GS and iPad (on 5.1.1) and Macbook (10.6.8) all connected to iCal on iCloud, but when I change an event on phone it doesnt update on iCloud/other devices - any ideas?

    Hi,
    I've an iPhone 3GS and iPad '1' (both on IOS 5.1.1) and Macbook (on 10.6.8) - all connect happily to my iCloud iCal (using the iCal app for iPhone/iPad and Firefox browser for access to my iCloud).
    But ... when I change an event (add/delete) on my iPhone it doesnt update on the iCal on my iCloud, therefore neither on iCal on my iPad!
    Yet if I change anything on my iCal iPad / iCal iCloud it updates/refreshes on the iPhone fine?
    So - it clearly recognises/refreshes any updates but can't update the iCloud!
    Any ideas?
    Don

    If you're also having problems changing the account on your iOS devices, go to https://appleid.apple.com, click Manage my Apple ID and sign in with your current iCloud ID.  Click edit next to the primary email account, change it back to your old email address and save the change.  Then edit the name of the account to change it back to your old email address.  You can now use your current password to turn off Find My iDevice, even though it prompts you for the password for your old account ID. Then save any photo stream photos that you wish to keep to your camera roll.  When finished go to Settings>iCloud, tap Delete Account and choose Delete from My iDevice when prompted (your iCloud data will still be in iCloud).  Next, go back to https://appleid.apple.com and change your primary email address and iCloud ID name back to the way it was.  Now you can go to Settings>iCloud and sign in with your current iCloud ID and password.

  • POI Information Updates when Costing Changes are not Saved

    Hi All,
    When you go to the costing screen of a party in Oracle HRMS, make changes to the costing string (Cost Allocation Flexfield) and not save them. Then, exit from the costing form and go to the Purchase Order Information (POI) screen and press Ctrl+F11, the POI information updates to the new changes. It was my understanding that in order for the purchase order info to be updated you need to make changes or "touch" the costing screen and save. I have noticed that the purchase order changes after being in the costing screen even without saving anything. Was this intend?
    Thanks,
    Naveen Gagadam

    The Changes on the Assignment reflect because of the changes on the Costing Screen. This is due to the custom.pll implementation. Is there an event name that I can use for the Assignment form such that the changes on the Assignment screen show up only after the changes are SAVED on the Costing Screen. Here's the code that we are using in the Procedure: Event of the custom.pll
    ====================================================================================
    If Event_name = 'WHEN-VALIDATE-RECORD' then
    --     1. Costing checks at Assignment (PERWSEAC). This code copies first 4 segments of costing string
    --               to Default Expense Account on the Assignment screen.The Code will perform this function for
    -- the first Costing record but no other record.
    if name_in('system.current_form') in ('PERWSEAC') then
         Step_identity := 'Costing to Expense Account Population';
                   if name_in ('system.cursor_block') = 'COST' then
    -- Check if current record is the first record in the block
    -- prior to 4/6/05 this code only ran if first costing record. now runs for all and passes
    -- whether first record to package. B Wagner                    
    if name_in('system.cursor_record') = '1' then
              lvc2_first_rec := 'Y';
    else
         lvc2_first_rec := 'N';
    end if;
                        if name_in('COST.SEGMENT1') is not null
                   and name_in('COST.SEGMENT8') is not null
                   and name_in('COST.SEGMENT2') is not null
                   and name_in('COST.SEGMENT3') is not null then
                             lvc2_company_nm     := name_in('COST.SEGMENT1');
                             lvc2_LOB := name_in('COST.SEGMENT8');
                             lvc2_location := name_in('COST.SEGMENT2');
                             lvc2_dept := name_in('COST.SEGMENT3');
                             FND_PROFILE.get('USER_ID',ln_user_id );
         -- It has been assumed that the seperator for the flexfield segments is a period ('.') .
         -- If the seperator is changed then the following line of code has to be modified.
         -- If the number of segments in the flexfield definition is changed then the number of
         -- separators has also to be modified.
    ln_assignment_id := name_in('COST.ASSIGNMENT_ID');
    ld_session_dt := name_in('CTL_GLOBALS.SESSION_DATE');
    smc_customlib.set_exp_act(
                                                                     ln_retcode,
                                                                     lvc2_errbuf,
                                                                     ln_user_id,
                                                                     ln_assignment_id,
                                                                     ld_session_dt,
                                                                     lvc2_company_nm,
                                                                     lvc2_LOB,
                                                                     lvc2_location,
                                                                     lvc2_dept,
                                                                lvc2_first_rec
    if ln_retcode = -1 then
         -- b wagner 4/6/05 - raise trigger failure so bad combinations can't be entered into costing screen
         fnd_message.set_string(lvc2_errbuf);
         fnd_message.error;
         raise form_trigger_failure;
    end if;
                        end if; -- If costing string is complete
                   end if;   If First Record of COST Block
                   end if; -- If Block is COST
         end if;     -- For Assignment form.
    ================================================================================================================
    Its the custom package that actually populates the changes in Costing Screen onto the Assignment Screen, but I want to activate this only when I save the changes on the Costing Screen. Right now the changes are seen on Assignment Screen when I hit CTRL=F11 even when I don's save the Costing Screen changes.
    Thank You,
    Ngagadam.
    Message was edited by:
    Naveen Gagadam
    Message was edited by:
    Naveen Gagadam
    Message was edited by:
    Naveen Gagadam
    Message was edited by:
    Naveen Gagadam

Maybe you are looking for

  • Best Buy Smash Preorder Bad Experience

    I sent the following email to Best Buy regarding my bad experience when I went to pickup my Super Smash preorder. After hours of being on hold and being transferred to countless different people, the final explanation I was given is that Best Buy can

  • Error while creating template from win 8.1 VM

    hello Experts, I have a SCVMM 2012 R2 with Hyper-V host on Windows server 2008 R2 sp1 . Next I have create a Windows 8.1 VM on Hyper-v Host machine then created a clone of this VM. It created successfully, but when i i tried to create   a template fr

  • I can no longer change/insert an image. Why?

    Up until now I have been able to insert replacement images into my website. I can no longer do so. A window with 'File not found' sometimes appears. Any clues?

  • Images not printing correctly when report is exported

    I work as part of a company that uses Crystal Reports to allow our clients to be able to print reports from our software. We are currently using Crystal Reports 10. We have a report set up with 4 images on the page that are loaded from a database. Th

  • Editing song info. doesn't work

    Hi When i try to edit song info. ,I am able to fill the required fields after right clicking and get info. buttons; but once i press ok ; nothin seems to happen. Its as if itunes ignores the change please help