Expanding path on JTree

Hi.
I add a node to the default tree model and an event gets fired back to the listener (in this case the JTree itself). I then expand the path so as to show the new node to the user. A gap appears between the new node and the node in another branch below the new node. If I force a re-render (like with updateUI - erk!) the tree is drawn fine, otherwise its now. See the diagram below. If this a common problem and how do you fix it? Many thanks!
A +
|
+----B
|
+----C
Now I insert a node D, and I get:
A +
|
+----B
| |
| +----D
| <------- big gap :-(
|
+----C                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
public class Test extends JFrame {
  JTree jt = new JTree();
  JButton jb = new JButton("Add");
  public Test() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container content = getContentPane();
    content.add(new JScrollPane(jt),BorderLayout.CENTER);
    jt.setExpandsSelectedPaths(true);
    JButton jb = new JButton("Add");
    content.add(jb, BorderLayout.SOUTH);
    jb.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent ae) {
        TreePath tp = jt.getSelectionPath();
        if (tp!=null) {
          DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode)tp.getLastPathComponent();
          DefaultMutableTreeNode newDmtn = new DefaultMutableTreeNode("Something");
          dmtn.add(newDmtn);
          ((javax.swing.tree.DefaultTreeModel)jt.getModel()).nodeStructureChanged(dmtn);
          jt.setSelectionPath(new TreePath(newDmtn.getPath()));
    setSize(200, 300);
    show();
  public static void main(String args[]) { new Test(); }
}

Similar Messages

  • JTree corruption problem when expanding paths (sometimes)

    Sometimes when adding nodes or expanding paths in my JTree I get a really weird corruption. Here's screenshots of the problem:
    http://linuxhelp.homeunix.com/screen1.png
    http://linuxhelp.homeunix.com/screen2.png
    How can I stop this from happening?
    Adam

    Hi!
    I also had this problem but it works fine using SwingUtilities.invokeLater
    /Malin
    private class ExpandListener implements TreeWillExpandListener {
    TreePath path = null;
    public void treeWillCollapse(TreeExpansionEvent e) {   
    public void treeWillExpand(TreeExpansionEvent e) {
    path = e.getPath();
    collapseAll();
    if (path != null) {
    // If we don't scroll later it doesn't work correctly in some cases
    SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    scrollPathToVisible(path);
    * Collapses the tree.
    public void collapseAll() {
    for (int i = root.getChildCount(); i > 0; i--) {
    collapseRow(i);

  • Saving expanded paths

    I've noticed that JTree keeps the expanded paths in some kind of cache. For example, if you expand a bunch of nodes under a certain parent, then collapse this parent and re-expand it again, all the previous expanded paths under this parent show up expanded again.
    This means JTree (or maybe each node) keeps a memory of its expanded state. Is there a way to retrieve all the expanded paths at once? What I would like to do is have my application save these expanded paths (we have to deal with very large trees) to restore them later (for example when the user reloads the application.
    Thanks for you thoughts :)

    I know that...
    My question is more, I want to make an algorythm that saves ALL paths that are expanded, so that I can later re-open the same paths when my application opens up again (after it was closed). What's the best way to do this?
    My idea was :
    -Put a tree expansion listener on my tree
    -In this listener, when the path is expanded save it in some kind of list or Set. This will be a path of tree nodes, so I'll have to retrieve the path of my objects instead.
    -Before my application closes, I save this path in some kind of user preferences (in file or in a datastore).
    -When my application re-opens, at the time I build my tree, I need to replace my path of objects with their respective path of nodes.
    -Then for each path of nodes, call the method
    makeVisible(path) of JTree.

  • Expand a path in JTree

    Hi all. Please help, I am trying to programmatically expand JTree with JTree.expandPath(path), but it only works one level downwards from the last physically selected node. Is this a bug, or am I doing something wrong?

    If you are using DefaultMutableTreeNode for your nodes, thenTreePath tp = new TreePath(theNode.getPath());gets you a path from the root to theNode. If you want that to be the selection, thentheTree.setSelectionPath(tp);and if you want it to be expanded and viewable thentheTree.expandPath(tp);If you aren't using DefaultMutableTreeNode, you will have to build the TreeNode[] that contains the nodes from the root down to theNode by some kind of loop; the rest of the code still works.

  • Expanding nodes in JTree

    I have an application that uses JTree
    I create the Jtree but I want to expand to see and select a node.
    I have the object of the node and the TreePath but I can't expand the tree using expandPath(), makeVisible(), scrollPathToVisible(path), etc. It seems that JTree doesn't detect the path I use as input.
    But when I use setSelectionPath(path) it is selected (I know because I see information about the node) but it is not displayed nor viewable.
    I only can expand nodes using expandRow(int).
    Does anybody know how expand and select nodes without clicking with mouse?

    expandPath(Treepath treePath) should work. Its possible that your treePath is wrong. How do you get the treePath?

  • Path in JTree

    How should I know where I click in jTree, actually I want to read the value of the selected node in JTree.
    Thanks
    Raheel

    You can a implement a selection listener and get the node each time a selection is made.
    Or from the API you can glean the method
    Object      getLastSelectedPathComponent()
    Returns the last path component in the first node of the current selection.

  • Path and JTree?

    Hi everybody !!!
    I would like to know how I can get the complete path of the JTree. I use the getLastSelectedPathComponent()) but it display only the folder. Do you know a method that can display the path of the folder?
    tree.addMouseListener(new MouseAdapter()
         public void mousePressed(MouseEvent e)
              if (e.getModifiers()==e.BUTTON1_MASK) // Bouton gauche
                             planche.affichageGraphique(tree.getLastSelectedPathComponent());
              else if(e.getModifiers()==e.BUTTON3_MASK) // Bouton droit
                             f_temps.setVisible(true);
    Thanks !!!

    jTree.getSelectionPath()

  • Select Expanded nodes in JTree

    Hi all,
    In the given tree structure, I want to get a node to be selected, once it is expanded.
    + Folder1
    - Folder2
          |
          |__-Folder3
           |
           |__-Folder4
              |
                |__ file1.docCurrently, if I have Folder1 selected and if I expand Folder2, the selection remains at
    Folder1 itself. I need to change the selection to Folder2.
    Also, I need to get the path of the expanded node . ie; when Folder4 is expanded, I need to
    get Folder4 selected and path has to be obtained as \Folder2\Folder3\Folder4.
    I found this link helpful-- http://forums.sun.com/thread.jspa?messageID=3616726, but there
    also, the path is obtained based on selection and not based on expansion.
    Please help with a solution
    Regards,
    Anees

    AneesAhamed wrote:
    Hi all,
    In the given tree structure, I want to get a node to be selected, once it is expanded.
    + Folder1
    - Folder2
    |
    |__-Folder3
           |
           |__-Folder4
              |
                |__ file1.docCurrently, if I have Folder1 selected and if I expand Folder2, the selection remains at
    Folder1 itself. I need to change the selection to Folder2.
    Also, I need to get the path of the expanded node . ie; when Folder4 is expanded, I need to
    get Folder4 selected and path has to be obtained as \Folder2\Folder3\Folder4.
    I found this link helpful-- http://forums.sun.com/thread.jspa?messageID=3616726, but there
    also, the path is obtained based on selection and not based on expansion.
    Please help with a solution
    Regards,
    AneesTo expand any node you need to "know" it either due to a user's mouse click or inside the code that expands it directly, something like :
    - by mouse click :
    myJTree.addMouseListener(new MouseAdapter()
         public void mouseClicked(MouseEvent e)
              TreePath treePath = getPathForLocation(e.getX(), e.getY());
    });- direct code :
    public void treeWillExpand(TreeExpansionEvent e)
         TreePath treePath = e.getPath();
    }Then you can get the corresponding node from the TreePath :
    DefaultMutableTreeNode node = (DefaultMutableTreeNode)treePath.getLastPathComponent();But for a selection this should be enough :
    myJTree.setSelectionPath(treePath);
    myJTree.scrollPathToVisible(treePath);Regards,
    Lara.

  • Can you expand an enveloped object without expanding paths?

    Is there a way to expand an enveloped object without expanding the paths of the object? For example, if I use Envelope Distort>Make With Mesh to distort a group of objects. Can I expand the object after it has been distorted without having to expand the paths of the individual objects that make up the disorted group?

    I've attached some very simple example images to, hopefully, further clarify. The first image is a circle with a thick stroke applied. The second is the circle with distortion applied via a simple mesh. The third is the expanded distorted image. In the third image, the stroke has also been expanded to a filled shape.   The grouped objects that I'm dealing with were created with a Wacom tablet using a 6D brush, and I want to be able to expand the envelope without expanding the strokes into filled objects. While it's certainly possible to just delete the expanding strokes and then reapply the brush to each object, I have some illustrations that I'd like to distort that are made up of a considerable number of objects, so manually going through and deleting the filled expanded strokes and then reapply the brush to each shape would be somewhat time-consuming.

  • Shrinking and expanding Paths

    Hi again
    I am wondering what can be wrong with my approach to closed paths etc.
    I have been working on a new logo as part of a new site later down the line and the text I have created outlines and then 3d. I obviously have lots of paths which when ungrouped I can add the gradients etc that I want.
    The problem is when creating the 3d version it doesn't seem to be an exact science and many of the paths are distorted and need looking at...
    In the beginning - I just fixed the bad ones and started creating gradients etc and when done I have tried to reduce the text to the size I might want to use and have found that many of the letters are distorted; the paths are all misshaped?
    The only way I have got around this is to create new paths for all the parts of my 3d text and then I don't have problems shrinking and expanding them?
    The same is happening with an icon in 3d? It is a hell of a lot of work to rebuild something from the ground up....
    Am I missing something here?
    I thought the idea behind illustrator was that one works with vectors that can be shrunk or grown to almost any size because of mathimatical constraints.
    If this is the case - which I am sure it is, then why am I having problems and what can remedy the situation?
    Thanks as always for your help with my problems...
    bookie56

    Besides the infernal ill-conceived Snap To Pixel Grid feature (fiasco), you should still not always expect rendering perfection from 3D Effect:
    I thought the idea behind illustrator was that one works with vectors that can be shrunk or grown to almost any size...
    Essentially, that's true. The scaleability advantage of vector-based graphics is that they consist of mathematical descriptions of shapes. But quality results assume quality descriptions.
    Whenever those mathematical descriptions are *automatically* generated,--rather than intelligently and deliberately defined--potential exists for caveats which human shape-recognition perceives as error and ugliness.
    As 3D modeling goes, Illustrator's 3D effect is quite rudimentary. This is tolerated because of what it ultimately renders: fairly "normal" vector paths, rather than just a raster image. But with 3D Effect you have to always watch out for occasional artifacts usually resulting from self-intersecting geometry; most commonly from outer bevels, but also from other geometric glitches.
    So 3D Effect should often be treated as an intermediary means toward an end. For final vector artwork, it is quite often advantageous to use 3D Effect as a "rough out" tool, then expand the effect and start cleaning up and optimizing the result. For final raster images (as for use on web pages), it is similarly often required to export (or simply screen capture) the automatically-generated image and do a little touch up in a raster imaging program.
    JET

  • Positioning expanded nodes on JTree

    Hey all,
    Does anyone know how to position an expanded node on a JTree to scroll inwards to the right (towards the current expanded level) and move to the top of the Panel it sits in? Kinda like Windows explorer.
    Any help will be greatly appreciated. Thanks in advance,
    zia

    Try to use
    setScrollsOnExpand(boolean�newValue) method of JTree
    regards
    Stas

  • How to not show only visible expanded paths in tree?

    Hi!
    Let's have a tree with next nodes:
    R - root
    N1.0
    N1.1 - child of N1.0
    N1.1.1 - child of N1.1
    The node N1.1 is expand, but node N1.0 is not expand. How show tree when node N1.1 is expand but it's not visible, because it parent is not expand?
    Thank you.

    The correct way to do this is to create a separate account for each of you and disable automatic login when prompted. Under Accounts I would also activate Fast User Switching if the two of you use it at the same time. Then each of you will have your own user directory and this will segregate all of your user data into two separate user folders and you can act separately.
    If it is just a convenience thing then download another email program, like Thunderbird, and each of you can simply use a separate program and neither will be bothered with the others email.
    Also unchecking the "enable this account" in the Mail > Account preferences will cause an account to "disappear" from the Inbox view until the box is rechecked. But this is only a solution if one of you uses the account occasionally like on long weekends or something.
    I think the separate accounts option is what you want from your description but there a few less drastic options.
    HTH,
    =Tod

  • Expanding a JTree Node on selection

    Hi,
    I have a need to expand the node on selection in a JTree. I would like all the children to be recursively expanded and selected.
    I believe the code lies somewhere with in JTree's TreeSelectionListener.
    The code I have is as follows
    tree.addTreeSelectionListener(new TreeSelectionListener()
    public void valueChanged(TreeSelectionEvent evt)
    TreePath[] paths = evt.getPaths();
    for (int i=0; i<paths.length; i++)
    if (evt.isAddedPath(i))
    DataNode node = (DataNode)paths.getLastPathComponent();
    ArrayList aList = node.children();
    if( !aList.isEmpty() )
    for(int j = 0; j<aList.size(); j++)
    TreePath tp = paths[i].pathByAddingChild(aList.get(j));
    System.out.println(tp);
    tree.expandPath(tp);
    }//for
    }//public void ValueChanged
    This does not seem to solve the problem..
    Your comments or help is very much appreciated..
    thanks
    S

    it does work for me (i do it in an action). what doesn't work for you?
    thomas
      public RecursiveExpander() {
        menu = new JPopupMenu();
        JMenuItem expand = new JMenuItem("Expand Recursive");
        expand.addActionListener(this);
        menu.add(expand);
      public void mousePressed(MouseEvent e) {
        theTree = (JTree)e.getSource();
        currentPath = theTree.getPathForLocation(e.getX(), e.getY());
        if ((currentPath != null) &&
            !((TreeNode)currentPath.getLastPathComponent()).isLeaf() &&
            (e.getModifiers() == InputEvent.BUTTON3_MASK)) {
          menu.show(theTree, e.getX(), e.getY());
      public void actionPerformed(ActionEvent ae) {
        new Thread(this).start();
      public void run() {
        theTree.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
        try { expand(currentPath); }
        catch (OutOfMemoryError oom) {
          System.gc();
          System.err.println("RecursiveExpander: " + oom);
          JOptionPane.showMessageDialog(null, "RecursiveExpander: " + oom, "Error", JOptionPane.ERROR_MESSAGE);
        theTree.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
      private void expand(TreePath path) {
        theTree.expandPath(path);
        TreeNode start = (TreeNode)path.getLastPathComponent();
        for (int i = 0; i < start.getChildCount(); i++) {
          TreeNode node = start.getChildAt(i);
          if (!node.isLeaf()) {
            expand(path.pathByAddingChild(node));
    }

  • Way to expanding jTree

    before i add a new node to a jtree some nodes r expanded. so after i added the new node in the JTree i want to show the nodes that were previously expanded in the jtree. what is the way?
    I am using,
    model : DefaultTreeModel
    tree : JTree
    rootnode : DefaultMutableTreeNode
    Now i am calling the model.reload() method. if the user is selected any node in the tree then i add the new node and call the reload, cause the cast cast exception: can't to cast MyObject to TreeNode. why?

    Thank you very much Steve, I was able to integrate
    your code in my own application. It's working fine.
    I will do more tests with it and let you know about
    it.That's terrific Andre. I am very pleased the code worked and helped you. I hope this solution 'nails' the much wondered about JTree refresh problem once and for all.
    Should you come across any bugs, or if you think of any means of improvement during your testing, I would be very interested to hear from you.
    In any case, good luck with your project, and all the best,
    Steve

  • JTree genius needed

    I need some serious help with the JTree as I am very confused as to why my tree is behaving in a certain manner. Basically I have saw AbstractTreeModel.java ina thread on thsi forum which emplements TreeModel. My tree is populated by data coming into the application over a network stream.
    Basically whats going on is, I am able to insert nodes and in fact change the valeu of nodes while the
    parent node above the node i am inserting is collapsed.Once the node is expanded I can change the value(in this case teh color of the icon) of the node, but the new nodes being inserted in the tree do not show up.
    Very confusing! I mean I see the same behavior when the parent is expanded or collapsed. But The nodes do not apear when the parent is expanded. In fact, after expanding and collapsing they no longer appear at all. What happens to my applciation when the node is expanded???
    Any thoughts

    Thanks for replying. I tried to do what you said. I think it would be best if i sent you some code.
    Here is my model which extends yours.
    public class ResourceTreeModel extends AbstractTreeModel {
    Vector listeners;
    public ResourceTreeModel(ResourceTypeNode r) {
    if(r == null) {
    throw new IllegalArgumentException("Root is null.");
    setRoot(r);
    /*This method adds
    *the new ResourceNode to
    *the tree model with
    *the specified ResourceTypeNode
    *as the parent.
    public void nodeInserted(ResourceTypeNode parent, Object node, int index) {
    //Resource type nodes
    //are where we insert
    //ResourceNodes
    if(node instanceof ResourceTypeNode) {
    parent.setChild(index, node);
    else if(node instanceof ResourceNode) {  
    parent.setChild(index, node);
    else {
    index = getIndexOfChild((Object)parent, node);
    TreePath tp = new TreePath(getPathToRoot(node));
    int[] ai = { index };
    Object[] ac = {node};
    fireTreeNodesInserted(new TreeModelEvent(this, tp, ai, ac));
    public void nodeChanged(Object node) {
    TreePath tp = new TreePath(getPathToRoot(node));
    fireTreeNodesChanged(new TreeModelEvent(this, tp, null, null));
    public Object getChild(Object parent, int index) {
    if(parent instanceof ResourceTypeNode) {
    return ((ResourceTypeNode)parent).getChildAt(index);
    return null;
    * Returns the number of children of parent.
    * @param parent the parent node
    * @return the child count
    public int getChildCount(Object parent) {
    if(parent instanceof ResourceTypeNode) {
    return ((ResourceTypeNode)parent).getChildCount();
    return 0;
    * Returns the index of child in parent.
    * @param parent the parent node
    * @param child the child node
    * @return the index of the child node in the parent
    public int getIndexOfChild(Object parent, Object child) {
    if(parent instanceof ResourceTypeNode && child instanceof ResourceTypeNode ) {
    return ((ResourceTypeNode)parent).getIndex((ResourceTypeNode)child);
    else if(parent instanceof ResourceTypeNode && child instanceof ResourceNode ) {
    return ((ResourceTypeNode)parent).getIndex((ResourceNode)child);
    else {
    return -1;
    public Object getParent(Object obj) {
    Object parent = null;
    if(obj instanceof ResourceTypeNode) {
    parent = ((ResourceTypeNode)obj).getParent();
    else if(obj instanceof ResourceNode) {
    parent = ((ResourceNode)obj).getParent();
    else {
    return parent;
    public boolean isLeaf(Object node) {
    return (node instanceof ResourceNode);
    Here is the class in which i build my tree at the start of application
    /*Create the apprpriate
    *ResourceTypeNodes for
    *the tree. The keys from
    *the C2App.resourceTypes
    *TreeMap are used to create
    *the JTree nodes.
    *A StringTokenizer is used
    *to dissect the segments
    *of the resource names
    *to build category nodes.
    public void init() {
    root = new ResourceTypeNode("Resources");
    treeModel = new ResourceTreeModel(root);
    //Need set of names
    //for resources.
    Set rTypesKeySet = C2App.resourceTypes.keySet();
    Iterator iter = rTypesKeySet.iterator();
    ResourceTypeNode key = null;
    ResourceTypeNode category = null;
    //Iterate through
    //all types.
    while(iter.hasNext()) {
    //Full Resource
    //Type Name.
    String currentCategory = iter.next().toString();
    //Need to determine the
    //level from root this
    //node should go into.
    StringTokenizer stok = new StringTokenizer(currentCategory, "::");
    //Levels from
    //root to node
    //to create.
    int levelFromRoot = stok.countTokens();
    //Node goes under
    //root parent node.
    if(currentCategory.lastIndexOf("::") == -1) {
    resourceTypeNodes.put(currentCategory, new ResourceTypeNode(currentCategory));
    ResourceTypeNode parent = root;
    parent.add((ResourceTypeNode)resourceTypeNodes.get(currentCategory));
    treeModel.nodeInserted(parent, resourceTypeNodes.get(currentCategory), parent.getChildCount());
    //Node goes under
    //a parent node other
    //than root.
    else {
    resourceTypeNodes.put(currentCategory, new ResourceTypeNode(currentCategory));
    String parentName = Resource.parentOf(currentCategory);
    ResourceTypeNode parent = (ResourceTypeNode)resourceTypeNodes.get(parentName);
    parent.add((ResourceTypeNode)resourceTypeNodes.get(currentCategory));
    treeModel.nodeInserted(parent, resourceTypeNodes.get(currentCategory), parent.getChildCount());
    This works fine I am able to open app and see all the resourcetype nodes wich are not leaves
    the problem i am having is with the code snippet below.
    //Existing resource?
    if(existingResource) {
    //Change value
    //of node
    ((ResourceTreeModel)C2App.theGUI.resourceTreePanel.resourceTree.getModel()).nodeChanged(C2App.theGUI.resourceTreePanel.resourceNodes.get(resourceID));
    //Is this node
    //displayed in
    //the ResourceInfoPanel?
    if(ResourceInfoPanel.getResourceDisplayedID().equals(resourceID)) {
    //Update panel.
    c2app.gui.ResourceInfoPanel.updatePanel(r);
    //New resource
    //for tree?
    else {
    //Get type so
    //that we can
    //decide which
    //parent node
    //the node should
    //be placed under.
    String type = r.type;
    //Get Parent node.
    ResourceTypeNode parent = (ResourceTypeNode)C2App.theGUI.resourceTreePanel.resourceTypeNodes.get(type);
    //Insert node
    //into tree under
    //parent.
    parent.add((ResourceNode)C2App.theGUI.resourceTreePanel.resourceNodes.get(resourceID));
    ((ResourceTreeModel)C2App.theGUI.resourceTreePanel.resourceTree.getModel()).nodeInserted(parent, C2App.theGUI.resourceTreePanel.resourceNodes.get(resourceID), parent.getChildCount());
    //Expand path
    //to this node
    /*Object[] tn = ((ResourceTreeModel)(C2App.theGUI.resourceTreePanel.resourceTree.getModel())).getPathToRoot(parent);
    System.out.println();
    for(int j = 0; j < tn.length; j++) {
    System.out.println("TN: " + tn[j].toString());
    System.out.println();
    TreePath tp = new TreePath(tn);
    System.out.println();
    System.out.println("TP: " + tp.toString());
    System.out.println();
    C2App.theGUI.resourceTreePanel.resourceTree.expandPath(tp);*/
    //((ResourceTreeModel)(C2App.theGUI.resourceTreePanel.resourceTree.getModel())).reload();
    //C2App.theGUI.resourceTreePanel.expandTree();
    C2App.theGUI.resourceTreePanel.resourceTree.treeDidChange();
    //Update the map.
    break;
    basically if the node row is collapsed which i am adding to the add occurs.
    but if it is expanded i do not see the new node.
    Funny that the update of the node occurs if existing resource is true.
    So that makes me wonder why nodeChanged works but not nodeInserted
    i analyzed all the way down to fireTreeNodesInserted with println and it is being called it tells me nod eis being added
    d not understand why when node is expanded cant add child to it.
    Thanks again I hope you can help me
    Vinny

Maybe you are looking for

  • Batch cost in billing

    Hi all, How can i make the cost (VPRS) in the bill to be the current cost of the batch. Thanks

  • Can not able to mount ntfs external hard disk

    Hi Getting the below error when try to mount NTFS external harddisk Disk /dev/sdb: 1000.2 GB, 1000204885504 bytes 255 heads, 63 sectors/track, 121601 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /d

  • Muted Sound in Ga

    I've been using an external Sound Blaster card for quite some time, worked perfectly with no problems. Unfortunately, last night it simply died, so I got a Sound Blaster Audigy SE. All mp3s and system sounds play just fine over the speakers, but when

  • Inventory Management (0IC_C03) cube

    When I carry out delta loads to the Inventory Management (0IC_C03) InfoCube do I need to compress these delta loads with No Marker Update? Thanks

  • How to invoke dll from Java applications

    Hello Friends, I am new to JNI application and I never tested it before. Now I have to interact with dll�s Which is running on AS400 machines. Currently our application, which is mainly retrieving the data and passing some parameter to the dll�s thro