HTMLDB - Support HGrid or Hierachical Tree Table Grid?

When is HTMLDB going to support
more advanced GUI controls such
as the HGrid or "tree table grid"?
I want to display a hierarchy of
objects in a tabular format.
Thanks!
-Kathryn

When is HTMLDB going to support
more advanced GUI controls such
as the HGrid or "tree table grid"?
I want to display a hierarchy of
objects in a tabular format.
Thanks!
-Kathryn

Similar Messages

  • Is Paginated Tree-Table/Tree supported using ProgramaticVO

    I have question Is Paginated Tree-Table/Tree supported using Programmatic View Object technique (http://docs.oracle.com/cd/E21043_01/web.1111/b31974/bcadvvo.htm#sm0341)

    Thanks Timo for reply, let me add more details to the question, i wanted to know if we have a tree/tree-table build using paginated VO, is the pagination will work for the sub nodes in the tree/tree-table i.e if we have child itself has 100 of rows and when we expand child, will pagination work?
    I am also looking for some input/examples if someone has tried paginated tree using programmatic VO.
    Thanks
    ..Sunil

  • ADF Query Panel with Tree Table

    I am using JDev 11g to create ADF Query Panel withTree Table. Basically it's working on data part.
    But on presentation part it looks awkward. The tree table's master row and child row share first row for column name
    ColumnMaster1   ColumnMaster2   ColumnMaster3    ColumnChild1   ColumnChild2   ColumnChild3
    So when tree closed, the master side filled. Child side empty. When tree opened, master side empty and child side filled.
    Are there any way, to make it inline looking with it's own column name for child?
    Thanks in advance.
    Edited by: kxc on Oct 30, 2009 9:19 AM

    Hi,
    the bug got closed already as not a bug. Instead this is filed as a documentation bug now, saying that tree tables don't support wrapped columns. So the bottom line is that three tables can only have a single leading column. If you need to show multiple information in there then I guess you will concatenate this
    Frank

  • Tree table doesn't update the data for checkboxes properly

    Hi All,
    I'm trying to use tomahawk tree table component to render a tree column of items along with checkboxes in other columns. Note that all the other columns except tree column are generated dynamically inside backing bean and checkboxes too added to the column dynamically.
    All works fine until it comes to the valuechangelistener.Inside valuechangelistener if try to fetch the component id from the event, it doesn't return the correct id and instead always return the id that corresponds to the last node of tree.
    Has anyone successfully used tree table to display input components? or any workaround my problem would be much appreciated.
    The code where I'm adding my dynamic columns as well as checkboxes is as below.
    for (int i = 0; i < roleNames.size(); i++) {
    HtmlSimpleColumn column = new HtmlSimpleColumn();
    htmlTree.getChildren().add(column);
    // Create header
    HtmlOutputText header = new HtmlOutputText();
    header.setValue(roleNames.get(i));
    column.setHeader(header);
                   ValueExpression valueExpression = FacesContext
    .getCurrentInstance().getApplication()
    .getExpressionFactory()
    .createValueExpression(
    FacesContext.getCurrentInstance().getELContext(),
    "#{treeItem.name}",
    Object.class);
    // Create check box
    HtmlSelectBooleanCheckbox checkbox = new HtmlSelectBooleanCheckbox();
                   // add the hidden input elements
                   HtmlInputHidden input = new HtmlInputHidden();
                   HtmlInputHidden input1 = new HtmlInputHidden();
                   // Bind changeRolePresent method in to listen to the
    // role permission change
                   checkbox.setImmediate(true);
    Class<?>[] parms = new Class[] { ValueChangeEvent.class };
    System.out.println("Adding value change listener to permission grid");
    MethodExpression valueChangeListener = FacesContext
    .getCurrentInstance().getApplication()
    .getExpressionFactory().createMethodExpression(
    FacesContext.getCurrentInstance()
    .getELContext(),
    "#{customTreeBean.changeRolePermission}",
    String.class, parms);
    checkbox
    .addValueChangeListener(new MethodExpressionValueChangeListener(
    valueChangeListener));
    input.setValueExpression("value", valueExpression);
                        input1.setValue(roleNames.get(i));
                   valueExpression = app
    .getExpressionFactory()
    .createValueExpression(
    FacesContext.getCurrentInstance().getELContext(),
    "#{treeItem.roleDetailsList["+i+"].selectedRole}",
    Object.class);
    checkbox.setValueExpression("value", valueExpression);
                   //checkbox.setOnclick("selectAll(this)");
                   checkbox.getChildren().add(input);
                   checkbox.getChildren().add(input1);
    column.getChildren().add(checkbox);
    In above code there will be four columns added dynamically and for each column a checkbox component is being added here. Rest JSF takes care to create checkboxes for each row of tree. But one thing that I noticed while viewing source that JSF is creating duplicate names for checkboxes in a batch of four (So for say if I had 3 rows, every row of checkboxes had same set of four ID's assigned, like ID1, ID2, ID3, ID4)
    Please help,
    Umesh

    Hi!!!
    Could you see this document : http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=BUG&p_id=3970326
    It describes the exactly bug, but there isn't solution...

  • Printing data available in an SAPUI5 tree table control / Model

    Hello Experts,
    I have a JSON model, which holds the data coming from an MII BLS transction.
    A Tree table is bound to the JSON model. Also, based on the "Expand" icon click on each row in Tree table, I load some data from the back-end dynamically and insert into my JSON model.
    My next course of action is to "Print" the data which is currently held by the tree table only. I don't want to print other UI controls which are present on the screen.
    Moreover, the table has a scroll bar. Irrespective of the scroll bar, I want to print all the data which is contained in side the tree table (and hence the model).
    Is there anyway I can achieve this? I went through few posts like: http://scn.sap.com/thread/3394127
    The question is remotely connected, but it gives me an impression that a particular "UI" control cannot be printed directly.
    Any suggestion will be greatly appreciated.

    Thank you Chandra.
    I now understand that it is not really possible to print a UI control directly. the framework doesn't support any kind of functionality/API for this.
    As suggested in this post that you have shared, it is not feasible for us to change the CSS and why are going to display the data in the table in another page, without keeping any scroll/pagination constraint. Thereafter, we'll print it using Ctrl+P.

  • I really needed this one implementation of tree table on mvc

    hi there i'm burning my as* reading some tutorials about tree table and all i found was a complex codes
    i just wanna know if you know some codes of a simple tree table where in the content of a tree or table was hardcoded and there are no thingy effects such as sortes. coz i really wanted to implement this on mvc since we are using STable here's the sample code:
    View:
    package treeTable;
    import java.awt.*;
    //import java.awt.event.MouseEvent;
    //import java.util.EventObject;
    import javax.swing.*;
    //import javax.swing.table.TableCellEditor;
    //import javax.swing.table.TableCellRenderer;
    import javax.swing.table.TableColumnModel;
    //import javax.swing.tree.DefaultTreeCellRenderer;
    //import javax.swing.tree.DefaultTreeSelectionModel;
    //import javax.swing.tree.TreeCellRenderer;
    //import javax.swing.tree.TreeModel;
    //import javax.swing.tree.TreePath;
    import javax.swing.border.*;
    //import javax.swing.event.ListSelectionEvent;
    //import javax.swing.event.ListSelectionListener;
    import com.jgoodies.forms.layout.CellConstraints;
    import com.jgoodies.forms.layout.FormLayout;
    //import com.borland.jbcl.layout.*;
    import org.scopemvc.core.Control;
    import org.scopemvc.core.Selector;
    import org.scopemvc.view.swing.*;
    * View for PosCCYFX
    * @author Raymond Isip
    public class HistoricTotalPositionByCurrencyFXView extends SPanel implements HistoricTotalPositionByCurrencyFXConstants {
    // Instance variables for the selectors used by the JBuilder designer
    Selector cashStructTBLSelector = CASH_STRUCT_TBL_SELECTOR;
    Selector selectedCashStructTBLSelector = SELECTED_CASH_STRUCT_TBL_SELECTOR;
    Selector optionsTBLSelector = OPTIONS_TBL_SELECTOR;
    Selector selectedOptionsTBLSelector = SELECTED_OPTIONS_TBL_SELECTOR;
    Selector fxcashStructuredFwdLBLSelector = FXCASH_STRUCTURED_FWD_LBL_SELECTOR;
    Selector cashLBLSelector = CASH_LBL_SELECTOR;
    Selector structFwdsLBLSelector = STRUCT_FWDS_LBL_SELECTOR;
    Selector optionsLBLSelector = OPTIONS_LBL_SELECTOR;
         FormLayout MainFormLayout = new FormLayout ("12,p,12,p,12", "11,p,11");
         FormLayout LeftFormLayout = new FormLayout ("280,250,87", "p,p");
         FormLayout LeftTableFormLayout = new FormLayout ("p", "p,p");
         FormLayout RightTableFormLayout = new FormLayout ("300", "p,p");
         FormLayout LeftSubFormLayout = new FormLayout ("100,50,100", "p");
         CellConstraints cc = new CellConstraints();
    Border cashStructTBLBorder;
    STable cashStructTBLTable = new STable();
    JScrollPane cashStructTBLScrollPane = new JScrollPane(cashStructTBLTable);
    Border optionsTBLBorder;
    STable optionsTBLTable = new STable();
    JScrollPane optionsTBLScrollPane = new JScrollPane(optionsTBLTable);
    JLabel fxcashStructuredFwdLBLLabel = new JLabel();
    SLabel fxcashStructuredFwdLBLSLabel = new SLabel();
    JLabel cashLBLLabel = new JLabel();
    SLabel cashLBLSLabel = new SLabel();
    JLabel structFwdsLBLLabel = new JLabel();
    SLabel structFwdsLBLSLabel = new SLabel();
    JLabel optionsLBLLabel = new JLabel();
    SLabel optionsLBLSLabel = new SLabel();
    * Constructor for the PosCCYFXView object
    public HistoricTotalPositionByCurrencyFXView() {
    jbInit();
    * The main program for the PosCCYFXView class
    * @param args The command line arguments
    public static void main(String[] args) {
              HistoricTotalPositionByCurrencyFXView view = new HistoricTotalPositionByCurrencyFXView();
    JFrame frame = new JFrame();
    frame.setSize(800, 600);
    frame.getContentPane().add(view);
    frame.setVisible(true);
    * Used by Scope to set the window frame title.
    * @return The title value
    public String getTitle() {
    return "PosCCYFX";
    * Used by Scope to end the application when the window is closed.
    * @return The closeControl value
    public Control getCloseControl() {
    return new Control(HistoricTotalPositionByCurrencyFXController.EXIT_CONTROL_ID);
    * Description of the Method
    * @return Description of the Return Value
    public boolean validateForm() {
    return true;
    private void jbInit() {
    this.setLayout(MainFormLayout);
         JPanel LeftPanel = new JPanel();
         JPanel LeftSubPanel = new JPanel();
         JPanel LeftTablePanel = new JPanel();
              JPanel RightTablePanel = new JPanel();
         LeftPanel.setLayout(LeftFormLayout);
              LeftSubPanel.setLayout(LeftSubFormLayout);
              LeftTablePanel.setLayout(LeftTableFormLayout);
              RightTablePanel.setLayout(RightTableFormLayout);
              JScrollPane LeftScrollPane = new JScrollPane(LeftTablePanel);
              //LeftScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
              LeftScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
              JScrollPane RightScrollPane = new JScrollPane(RightTablePanel);
              RightScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
              RightScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
              LeftScrollPane.setPreferredSize(new Dimension(620,330));
              RightScrollPane.setPreferredSize(new Dimension(300,330));
    cashStructTBLTable.setSelector(cashStructTBLSelector);
    cashStructTBLTable.setSelectionSelector(selectedCashStructTBLSelector);
    String[] columnSelects = {"col1", "col2", "col3", "col4", "col5","col6", "col7", "col8", "col9", "col10"};
    String[] columnNames = {"USD", "Date","Product Type", "Details", "Buy", "Sell", "Sub Total", "Buy", "Sell", "Total"};
    int colWidths[] = {100,70,70,40,50,50,60,50,50,60};
    cashStructTBLTable.setColumnSelectors(columnSelects);
    cashStructTBLTable.setColumnNames(columnNames);
    cashStructTBLTable.setPreferredScrollableViewportSize(new Dimension(600,273));
    TableColumnModel cashStructTBLModel = cashStructTBLTable.getColumnModel();
    for (int x=0; x<colWidths.length; x++) {
    int width = colWidths[x];
    cashStructTBLModel.getColumn(x).setPreferredWidth(width);}
              cashStructTBLTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    cashStructTBLScrollPane.setBorder(cashStructTBLBorder);
    cashStructTBLScrollPane.getViewport().add(cashStructTBLTable, null);
    optionsTBLTable.setSelector(optionsTBLSelector);
    optionsTBLTable.setSelectionSelector(selectedOptionsTBLSelector);
    String[] columnSelects1 = {"col1", "col2", "col3"};
    String[] columnNames1 = {"Buy", "Sell", "Total"};
    int colWidths1[] = {90,90,100};
    optionsTBLTable.setColumnSelectors(columnSelects1);
    optionsTBLTable.setColumnNames(columnNames1);
    optionsTBLTable.setPreferredScrollableViewportSize(new Dimension(300,290));
    TableColumnModel optionsTBLModel = optionsTBLTable.getColumnModel();
    for (int x1=0; x1<colWidths1.length; x1++) {
    int width1 = colWidths1[x1];
    optionsTBLModel.getColumn(x1).setPreferredWidth(width1); }
              optionsTBLTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    optionsTBLScrollPane.setBorder(optionsTBLBorder);
    optionsTBLScrollPane.getViewport().add(optionsTBLTable, null);
              optionsTBLTable.setEnabled(false);
    fxcashStructuredFwdLBLLabel.setText(" FX Cash & Structured Forwards");
              fxcashStructuredFwdLBLLabel.setBorder(BorderFactory.createRaisedBevelBorder());
              cashLBLLabel.setText(" Cash");
              cashLBLLabel.setBorder(BorderFactory.createRaisedBevelBorder());
              structFwdsLBLLabel.setText(" Structured FWDs");
              structFwdsLBLLabel.setBorder(BorderFactory.createRaisedBevelBorder());
              optionsLBLLabel.setText(" Options");
              optionsLBLLabel.setBorder(BorderFactory.createRaisedBevelBorder());
              /******************************Fillers*************************************/
    JLabel sample = new JLabel(" ");
              JLabel sample1 = new JLabel(" ");
              JLabel sample2 = new JLabel(" ");
              JLabel sample3 = new JLabel(" ");
              JLabel sample4 = new JLabel(" ");
              sample.setBorder(BorderFactory.createRaisedBevelBorder());
              sample1.setBorder(BorderFactory.createRaisedBevelBorder());
              sample2.setBorder(BorderFactory.createRaisedBevelBorder());
              sample3.setBorder(BorderFactory.createRaisedBevelBorder());
              sample4.setBorder(BorderFactory.createRaisedBevelBorder());
              LeftSubPanel.add(sample, cc.xy(2,1));
              LeftPanel.add(sample1, cc.xy(1,1));
              LeftPanel.add(sample2, cc.xy(3,1));
              LeftPanel.add(sample3, cc.xy(1,2));
              LeftPanel.add(sample4, cc.xy(3,2));
              LeftSubPanel.add(cashLBLLabel, cc.xy(1,1));
              LeftSubPanel.add(structFwdsLBLLabel, cc.xy(3,1));
              LeftPanel.add(fxcashStructuredFwdLBLLabel, cc.xy(2,1));
              LeftPanel.add(LeftSubPanel, cc.xy(2,2));
              LeftTablePanel.add(LeftPanel, cc.xy(1,1));
              LeftTablePanel.add(cashStructTBLScrollPane, cc.xy(1,2));
              RightTablePanel.add(optionsLBLLabel, cc.xy(1,1));
              RightTablePanel.add(optionsTBLScrollPane, cc.xy(1,2));
              this.add(LeftScrollPane, cc.xy(2,2));
              this.add(RightScrollPane, cc.xy(4,2));
    Model:
    package treeTable;
    import java.util.ArrayList;
    import java.util.List;
    import org.scopemvc.core.ModelChangeEvent;
    import org.scopemvc.core.Selector;
    import org.scopemvc.model.basic.*;
    import org.scopemvc.model.collection.ListModel;
    * Model for for PosCCYFX
    * @author Raymond Isip
    public class HistoricTotalPositionByCurrencyFXModel extends BasicModel implements HistoricTotalPositionByCurrencyFXConstants {
    private ListModel cashStructTBLList = new ListModel();
    private CashStructTBLItem selectedCashStructTBL = null;
    private ListModel optionsTBLList = new ListModel();
    private OptionsTBLItem selectedOptionsTBL = null;
    private String fxcashStructuredFwdLBL;
    private String cashLBL;
    private String structFwdsLBL;
    private String optionsLBL;
    * Constructor for the PosCCYFXModel object
    public HistoricTotalPositionByCurrencyFXModel() {
              Object[] data1= new Object[]{"100","100","200"};
              Object[] data2= new Object[]{"","29.Apr.2004","Forward","SGD","200","100","300","250","150","400"};
              for(int x = 0; x<=25;x++){
                   selectedOptionsTBL = new OptionsTBLItem(data1);
                   optionsTBLList.add(selectedOptionsTBL);
                   selectedCashStructTBL = new CashStructTBLItem(data2);
                   cashStructTBLList.add(selectedCashStructTBL);
    * Gets the cashStructTBL list
    * @return The cashStructTBL list
    public List getCashStructTBLList() {
    return cashStructTBLList;
    * Sets the cashStructTBL list
    * @param newCashStructTBLList The new cashStructTBL list
    public void setCashStructTBLList(List newCashStructTBLList) {
    cashStructTBLList.setList(newCashStructTBLList);
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, CASH_STRUCT_TBL_SELECTOR);
    * Gets the selected cashStructTBL item
    * @return A cashStructTBL item
    public CashStructTBLItem getSelectedCashStructTBL() {
    return selectedCashStructTBL;
    * Sets the selected cashStructTBL item
    * @param newCashStructTBL The new cashStructTBL item
    public void setSelectedCashStructTBL(CashStructTBLItem newCashStructTBL) {
    selectedCashStructTBL = newCashStructTBL;
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, SELECTED_CASH_STRUCT_TBL_SELECTOR) ;
    * Gets the optionsTBL list
    * @return The optionsTBL list
    public List getOptionsTBLList() {
    return optionsTBLList;
    * Sets the optionsTBL list
    * @param newOptionsTBLList The new optionsTBL list
    public void setOptionsTBLList(List newOptionsTBLList) {
    optionsTBLList.setList(newOptionsTBLList);
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, OPTIONS_TBL_SELECTOR);
    * Gets the selected optionsTBL item
    * @return A optionsTBL item
    public OptionsTBLItem getSelectedOptionsTBL() {
    return selectedOptionsTBL;
    * Sets the selected optionsTBL item
    * @param newOptionsTBL The new optionsTBL item
    public void setSelectedOptionsTBL(OptionsTBLItem newOptionsTBL) {
    selectedOptionsTBL = newOptionsTBL;
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, SELECTED_OPTIONS_TBL_SELECTOR) ;
    * Gets the fxcashStructuredFwdLBL attribute
    * @return The fxcashStructuredFwdLBL value
    public String getFxcashStructuredFwdLBL() {
    return fxcashStructuredFwdLBL;
    * Sets the fxcashStructuredFwdLBL attribute
    * @param newFxcashStructuredFwdLBL The new fxcashStructuredFwdLBL value
    public void setFxcashStructuredFwdLBL(String newFxcashStructuredFwdLBL) {
    fxcashStructuredFwdLBL = newFxcashStructuredFwdLBL;
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, FXCASH_STRUCTURED_FWD_LBL_SELECTOR);
    * Gets the cashLBL attribute
    * @return The cashLBL value
    public String getCashLBL() {
    return cashLBL;
    * Sets the cashLBL attribute
    * @param newCashLBL The new cashLBL value
    public void setCashLBL(String newCashLBL) {
    cashLBL = newCashLBL;
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, CASH_LBL_SELECTOR);
    * Gets the structFwdsLBL attribute
    * @return The structFwdsLBL value
    public String getStructFwdsLBL() {
    return structFwdsLBL;
    * Sets the structFwdsLBL attribute
    * @param newStructFwdsLBL The new structFwdsLBL value
    public void setStructFwdsLBL(String newStructFwdsLBL) {
    structFwdsLBL = newStructFwdsLBL;
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, STRUCT_FWDS_LBL_SELECTOR);
    * Gets the optionsLBL attribute
    * @return The optionsLBL value
    public String getOptionsLBL() {
    return optionsLBL;
    * Sets the optionsLBL attribute
    * @param newOptionsLBL The new optionsLBL value
    public void setOptionsLBL(String newOptionsLBL) {
    optionsLBL = newOptionsLBL;
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, OPTIONS_LBL_SELECTOR);
    Controller:
    package treeTable;
    import java.awt.Dimension;
    import org.scopemvc.controller.basic.BasicController;
    import org.scopemvc.core.Control;
    import org.scopemvc.core.ControlException;
    * Controller for PosCCYFX
    * @author Raymond Isip
    public class HistoricTotalPositionByCurrencyFXController extends BasicController implements HistoricTotalPositionByCurrencyFXConstants {
    * Constructor for the PosCCYFXController object
    public HistoricTotalPositionByCurrencyFXController() {
    setModel(new HistoricTotalPositionByCurrencyFXModel());
    setView(new HistoricTotalPositionByCurrencyFXView());
         public HistoricTotalPositionByCurrencyFXController(HistoricTotalPositionByCurrencyFXView view) {
              setModel(new HistoricTotalPositionByCurrencyFXModel());
              setView(view);
    * Call this after creating the Controller to make it perform
    * its initial action. Default impl opens the view in a new frame.
    public void startup() {
              HistoricTotalPositionByCurrencyFXView myView = (HistoricTotalPositionByCurrencyFXView) getView();
    // This is the code that centers the view
    myView.setViewBounds(myView.CENTRED);
    myView.setPreferredSize(new Dimension(1000, 600));
    showView(myView);
    * Can be called by a parent to shutdown and remove this from
    * the chain of responsibility. Default impl does this:
    * <ul>
    * <li>call shutdown() on every child controller</li>
    * <li>call hideView()</li>
    * <li>setParent(null)</li>
    * </ul>
    public void shutdown() {
    super.shutdown();
    * Handles all controls
    * @param inControl The control token invoking the presentation logic
    * @throws ControlException when an error occured while handling the control
    protected void doHandleControl(Control inControl) throws ControlException {
    try {
    if (inControl.matchesID(SAVE)) {
    inControl.markMatched();
    doSave();
    } else if (inControl.matchesID(RESET)) {
    inControl.markMatched();
    doReset();
    } else if (inControl.matchesID(GOT_OPTIONS_TBL)) {
    inControl.markMatched();
    doGotOptionsTbl();
    } catch (ControlException ce) {
    throw ce;
    } catch (RuntimeException re) {
    re.printStackTrace();
    throw re;     
    } finally {
    // do cleanup
    * Handles the SAVE control
    * @todo Implement doSave
    protected void doSave() throws ControlException {
    // to implement
    * Handles the RESET control
    * @todo Implement doReset
    protected void doReset() throws ControlException {
    // to implement
    * Handles the GOT_OPTIONS_TBL control
    * @todo Implement doGotOptionsTbl
    protected void doGotOptionsTbl() throws ControlException {
    // to implement
    Launcher:
    package treeTable;
    import org.scopemvc.util.ResourceLoader;
    import org.scopemvc.util.UIStrings;
    * Launcher for PosCCYFX
    * @author Raymond Isip
    public class HistoricTotalPositionByCurrencyFXLauncher {
    * Constructor for the PosCCYFXLauncher object
    public HistoricTotalPositionByCurrencyFXLauncher() {
    * Start the PosCCYFX application
    * @param args The command line arguments
    public static void main(String[] args) {
    // TODO: change 'resources' by the name of your properties file
    UIStrings.setPropertiesName("resources");
    ResourceLoader.setClientClassLoader(HistoricTotalPositionByCurrencyFXLauncher.class.getClassLoader());
              HistoricTotalPositionByCurrencyFXController mainController = new HistoricTotalPositionByCurrencyFXController();
    mainController.startup();
    Constant:
    package treeTable;
    import org.scopemvc.core.Selector;
    * Constants for the selectors and the control ids defined in PosCCYFX
    * @author Raymond Isip
    public interface HistoricTotalPositionByCurrencyFXConstants {
    // Selectors
    Selector CASH_STRUCT_TBL_SELECTOR = Selector.fromString("cashStructTBLList");
    Selector SELECTED_CASH_STRUCT_TBL_SELECTOR = Selector.fromString("selectedCashStructTBL");
    Selector OPTIONS_TBL_SELECTOR = Selector.fromString("optionsTBLList");
    Selector SELECTED_OPTIONS_TBL_SELECTOR = Selector.fromString("selectedOptionsTBL");
    Selector FXCASH_STRUCTURED_FWD_LBL_SELECTOR = Selector.fromString("fxcashStructuredFwdLBL");
    Selector CASH_LBL_SELECTOR = Selector.fromString("cashLBL");
    Selector STRUCT_FWDS_LBL_SELECTOR = Selector.fromString("structFwdsLBL");
    Selector OPTIONS_LBL_SELECTOR = Selector.fromString("optionsLBL");
    // Control IDs
    * The SAVE control ID for the save button
    String SAVE = "SAVE";
    * The RESET control ID for the reset button
    String RESET = "RESET";
    * The GOT_OPTIONS_TBL control ID for the optionsTBL field
    String GOT_OPTIONS_TBL = "GOT_OPTIONS_TBL";
    CashStructTBLItem:
    package treeTable;
    * Item for CashStructTBL
    * @author Raymond Isip
    public class CashStructTBLItem {
         String col1= new String();
         String col2= new String();
         String col3= new String();
         String col4= new String();
         String col5= new String();
         String col6= new String();
         String col7= new String();
         String col8= new String();
         String col9= new String();
         String col10= new String();
    * Constructor for the CashStructTBLItem object
         public CashStructTBLItem(Object[] data1) {
              setCol1((String)data1[0]);
              setCol2((String)data1[1]);
              setCol3((String)data1[2]);
              setCol4((String)data1[3]);
              setCol5((String)data1[4]);
              setCol6((String)data1[5]);     
              setCol7((String)data1[6]);
              setCol8((String)data1[7]);
              setCol9((String)data1[8]);     
              setCol10((String)data1[9]);
         * @return
         public String getCol1() {
              return col1;
         * @return
         public String getCol10() {
              return col10;
         * @return
         public String getCol2() {
              return col2;
         * @return
         public String getCol3() {
              return col3;
         * @return
         public String getCol4() {
              return col4;
         * @return
         public String getCol5() {
              return col5;
         * @return
         public String getCol6() {
              return col6;
         * @return
         public String getCol7() {
              return col7;
         * @return
         public String getCol8() {
              return col8;
         * @return
         public String getCol9() {
              return col9;
         * @param string
         public void setCol1(String string) {
              col1 = string;
         * @param string
         public void setCol10(String string) {
              col10 = string;
         * @param string
         public void setCol2(String string) {
              col2 = string;
         * @param string
         public void setCol3(String string) {
              col3 = string;
         * @param string
         public void setCol4(String string) {
              col4 = string;
         * @param string
         public void setCol5(String string) {
              col5 = string;
         * @param string
         public void setCol6(String string) {
              col6 = string;
         * @param string
         public void setCol7(String string) {
              col7 = string;
         * @param string
         public void setCol8(String string) {
              col8 = string;
         * @param string
         public void setCol9(String string) {
              col9 = string;
    OptionsTBLItem:
    package treeTable;
    * Item for OptionsTBL
    * @author Raymond Isip
    public class OptionsTBLItem {
         String col1= new String();
         String col2= new String();
         String col3= new String();
    * Constructor for the OptionsTBLItem object
         public OptionsTBLItem(Object[] data1) {
              setCol1((String)data1[0]);
              setCol2((String)data1[1]);
              setCol3((String)data1[2]);
         * @return
         public String getCol1() {
              return col1;
         * @return
         public String getCol2() {
              return col2;
         * @return
         public String getCol3() {
              return col3;
         * @param string
         public void setCol1(String string) {
              col1 = string;
         * @param string
         public void setCol2(String string) {
              col2 = string;
         * @param string
         public void setCol3(String string) {
              col3 = string;
    All I want is for the tree table renderers or editors to use the table created on the vieew part of this mvc
    i will greatly appreciates your help

    As a start point take sources of JTable (the component and datamodel) and rebuild them. I have made such component for my company product. To write it I spend 5 days and about two weeks for debugging. This code cannot be very simple. As it should be fully mutable. For example, each line should have bkcolor, fgcolor, font, etc. Each sell has bkcolor, fgcolor, font, insets, border, alighnment, visibility, etc. Each node has its cell, indent and array of data cells. To support fast scrolling the painting should be buffered. My components also supports text line wrapping. The tree component consists of three parts: the header, the left part and the matrix of data. This component can be printed (this is a secial code for paging and scaling).

  • Hierarchical Tree Table

    Hello! There,
         I have to add a JTable in java application, It is so simple but I have problem when requirements has changed like Table/Grid should be in Hierarchical. Means Hierarchical Table like Table with Tree. I have a Hierarchical Tree Table sample but this is a XUL example. So, If you want to see, create a sample.xul file and put below code to that and open using mozilla browser.
    THANKS IN ADVANCE
    <?xml version="1.0"?>
    <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
    <window id="Hierarchical-Tree" title="Programming Languages at Hierarchical Tree"
    xmlns:html="http://www.w3.org/1999/xhtml"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <tree rows="24">
    <treecols>
    <treecol id="college-student" label="Language" primary="true" flex="3"/>
    <treecol id="degree" label="Uses" flex="6"/>
         <treecol id="session" label="Version" flex="1"/>
    </treecols>
    <treechildren>
    <treeitem container="true" open="true">
    <treerow>
    <treecell label="Java"/>
    </treerow>
    <treechildren>
    <treeitem>
    <treerow>
    <treecell label="Servlet"/>
    <treecell label="Enterprise App. Development"/>
                   <treecell label="2.4"/>
    </treerow>
    </treeitem>
    <treeitem>
    <treerow>
    <treecell label="Java Server Pages (JSP)"/>
    <treecell label="Enterprise App. Development"/>
                   <treecell label="2.0"/>
    </treerow>
    </treeitem>
              <treeitem>
    <treerow>
    <treecell label="Java Server Faces (JSF)"/>
    <treecell label="Enterprise App. Development"/>
                   <treecell label="2.0"/>
    </treerow>
    </treeitem>
    </treechildren>
    </treeitem>
    </treechildren>
    </tree>
    </window>

    Hi,
    A well implemented JTreeTable can you found as a part from the SwingX-library.
    You can find those library at here
    Olek

  • Ical : Une connexion sécurisée n'a pas pu être établie.

    Bonjour, sur mon Imac, j'essai de synchroniser mon calendrier google via ical, mais lorsque je coche calendrier dans les paramêtres de mon compte, j'ai un message :
    Une connexion sécurisée n’a pas pu être établie.
    Cliquez sur Continuer pour continuer la création de votre compte. Si nécessaire, vous pourrez modifier ce compte ultérieurement au sein des préférences Calendrier.
    Si je clique sur continuer, rien ne se passe.
    Je n'ai aucun problème sur mon Ipad ou Iphone, ça marche parfaitement.
    Quelqu'un aurait une idée?

    Problème résolu : voir source zerfouth sur forum macbidouille
    Bonjour à tous,
    Il semble qu'une solution existe au problème décrit dans ces échanges.
    Il faut supprimer l'application Wi-FI Synch qui se manifeste dans la barre supérieure à droite de l'écran par une icône Iphone noir.
    Pour ce faire :
    Aller dans la bibliothèque
    Aller dans Launch Daemons
    Virer la ligne com.ghughes.wifisync.root.plist
    Aller dans le répertoire Application Support
    Virer le répertoire Wi-Fi Synch
    Redémarrer et ça devrait permettre de connecter Iphone et Ipad sans problème.
    A noter que ghugues correspond au nom du développeur de l'appli Wi-Fi Synch
    J'ai trouvé ça dans le forum anglais de discussion Apple. Le découvreur est un certain Benxine.
    Je pense que le fait de virer Wi-Fi Synch n'est pas sans conséquences, mais qu'il doit être facile de le réinstaller en cas de besoin.
    Prudence donc, en attendant ça fonctionne chez moi et je n'ai plus à ré-installer Itunes à chaque fois que je veux voir ce qui se passe dans mon Ipad. ( source Zerfouth ) http://forum.macbidouille.com/index.php?showtopic=374141

  • Cannot sort child rows in multilevel tree table

    Hi,
    I originally hijacked a two-year-old forum thread that was vaguely similar to my issue, but a kind forum moderator split my post away
    (and deleted my other hijack post asking this same question)
    so that my inquiry might be viewable on its own.
    Hopefully someone can pay attention to my issue instead of getting it confused with those other old forum threads.
    So, here we go ...
    Is sorting in a treeTable at a particular level possible? Just want to let you I have tried the following approaches to do this. But it dis not work for me.
    I have tree table with 2 levels. I am trying to sort the child rows based on its column say "Display Sequence".
    User can type in number in this column which contains input text. On value change event of the this field, all the
    child rows in the level 2 need to be sorted. This needs to be done without committing the data. On commit it works,
    because it sorts based on order by clause. I want the child rows to be sorted on value change event. Following
    various approaches I tried.
    TreeModel tModel = (TreeModel)treeTable.getValue();
    SortCriterion sortCriterion = new SortCriterion("DisplaySequence",true);
    List<SortCriterion> sortCriteriaList = new ArrayList<SortCriterion>();
    sortCriteriaList.add(sortCriterion);
    tModel.setSortCriteria(sortCriteriaList);
    The above code does not work, As "DisplaySequence" is not available in the parent view object.
    Here is approach no 2
    JUCtrlHierBinding treeTableBinding = null;
    JUCtrlHierNodeBinding nodeBinding = null;
    JUCtrlHierNodeBinding parentNodeBinding = null;
    JUCtrlHierTypeBinding nodeHierTypeBinding = null;
    Key rowKey;
    Object dispSeqObj;
    Number displaySequence = null;
    Map<Key,Number> keyValueMap = null;
    Set<Key> emptyValueKeySet = null;
    Map<Key,Number> sortedKeyValueMap = null;
    DCIteratorBinding target = null;
    Iterator iter = null;
    int rowIndex = 1;
    RowSetIterator rsi = null;
    Row currentRow = null;
    Row row = null;
    RowKeySet selectedRowKey = lookupTreeTable.getSelectedRowKeys();
    Iterator rksIterator = selectedRowKey.iterator();
    if (rksIterator.hasNext()) {
    List key = (List)rksIterator.next();
    System.out.println("key :"+key);
    treeTableBinding = (JUCtrlHierBinding) ((CollectionModel)lookupTreeTable.getValue()).getWrappedData();
    nodeBinding = treeTableBinding.findNodeByKeyPath(key);
    parentNodeBinding = nodeBinding.getParent();
    //rsi = nodeBinding.getParentRowSetIterator();
    rsi = parentNodeBinding.getChildIteratorBinding().getRowSetIterator();
    keyValueMap = new LinkedHashMap<Key,Number>();
    emptyValueKeySet = new LinkedHashSet<Key>();
    // Gets the DisplaySequence by iterating through the child rows
    while(rsi.hasNext()) {
    if(rowIndex==1)
    row = rsi.first();
    else
    row = rsi.next();
    rowKey = row.getKey();
    dispSeqObj = row.getAttribute("DisplaySequence");
    if(dispSeqObj!=null && dispSeqObj instanceof Number) {
    displaySequence = (Number)dispSeqObj;
    keyValueMap.put(rowKey, displaySequence);
    }else {
    emptyValueKeySet.add(rowKey);
    rowIndex++;
    rowIndex = 0;
    // Sort the numbers using comparator
    DisplaySequenceComparator dispSeqComparator = new DisplaySequenceComparator(keyValueMap);
    sortedKeyValueMap = new TreeMap<Key,Number>(dispSeqComparator);
    sortedKeyValueMap.putAll(keyValueMap);
    rsi.reset();
    nodeHierTypeBinding = nodeBinding.getHierTypeBinding();
    System.out.println("nodeHierTypeBinding :"+nodeHierTypeBinding);
    String expr = nodeHierTypeBinding.getTargetIterator();
    if (expr != null) {
    Object val = nodeBinding.getBindingContainer().evaluateParameter(expr, false);
    if (val instanceof DCIteratorBinding) {
    target = ((DCIteratorBinding)val);
    ViewObject targetVo = target.getViewObject();
    System.out.println("targetVo :"+targetVo);
    targetVo.setAssociationConsistent(true);
    //ri = target.findRowsByKeyValues(new Key[]{rowData.getRowKey()});
    rsi = parentNodeBinding.getChildIteratorBinding().getRowSetIterator();
    //rsi = nodeBinding.getParentRowSetIterator();
    // Rearrange the tree rows by inserting at respective index based on sorting.
    ViewObject vo = nodeBinding.getViewObject();
    iter = sortedKeyValueMap.keySet().iterator();
    while(iter.hasNext()) {
    currentRow = rsi.getRow((Key)iter.next());
    rsi.setCurrentRow(currentRow);
    rsi.setCurrentRowAtRangeIndex(rowIndex);
    //rsi.insertRowAtRangeIndex(rowIndex, currentRow);
    rowIndex++;
    iter = emptyValueKeySet.iterator();
    while(iter.hasNext()) {
    currentRow = rsi.getRow((Key)iter.next());
    rsi.setCurrentRow(currentRow);
    rsi.setCurrentRowAtRangeIndex(rowIndex);
    //rsi.insertRowAtRangeIndex(rowIndex, currentRow);
    rowIndex++;
    rsi.closeRowSetIterator();
    AdfFacesContext.getCurrentInstance().addPartialTarget(treeTable);
    private class DisplaySequenceComparator implements Comparator {
    Map<Key,oracle.jbo.domain.Number> dispSeqMap = null;
    public DisplaySequenceComparator(Map<Key,oracle.jbo.domain.Number> dispSeqMap) {
    this.dispSeqMap = dispSeqMap;
    public int compare(Object a, Object b) {
    Key key1 = (Key)a;
    Key key2 = (Key)b;
    oracle.jbo.domain.Number value1 = dispSeqMap.get(key1);
    oracle.jbo.domain.Number value2 = dispSeqMap.get(key2);
    if(value1.getValue() > value2.getValue()) {
    return 1;
    } else if(value1.getValue() == value2.getValue()) {
    return 0;
    } else {
    return -1;
    In the above code I tried to perform sorting of DisplaySequence values using comparator, then tried to rearrange
    nodes or rows based on sort resurts. But rsi.insertRowAtRangeIndex(rowIndex, currentRow) give
    DeadViewException...unable to find view reference. While setting current row also does not work.
    Approach 3.
    DCIteratorBinding iter1 =
    bindings.findIteratorBinding("childIterator");
    iter1.executeQuery();
    SortCriteria sc = new SortCriteriaImpl("DisplaySequence",false);
    SortCriteria [] scArray = new SortCriteria[1];
    scArray[0] = sc;
    iter1.applySortCriteria(scArray);
    Any help in Sorting Child nodes ADF treeTable is appreciated. Thanks in Advance.
    Abhishek

    Hi Frank,
    Thanks for your reply. I have tried similar approach for sorting tree table child rows based on user specified number and it works. But there is a limitation for this. This sorting works only for read only/transient view object. For updatable view object after sorting, data cannot be saved or updated, as it cannot find the rowid. Here is what I tried
    In the ParentViewImpl class,
    1. overrode the method createViewLinkAccessorRS, so that this method is forcefully executed.
    @Override
    protected ViewRowSetImpl createViewLinkAccessorRS(AssociationDefImpl associationDefImpl,
    oracle.jbo.server.ViewObjectImpl viewObjectImpl,
    Row row,
    Object[] object) {
    ViewRowSetImpl viewRowSetImpl = super.createViewLinkAccessorRS(associationDefImpl, viewObjectImpl, row, object);
    return viewRowSetImpl;
    2. Added the following method, which will be invoked on valueChange of DisplaySequence in child row. Expose this method through client interface. This method accept a parameter i.e. parent row key of the child row.
    public void sortChildRecords(Key parentKey) {
    ViewObject viewObject = null;
    String type = null;
    if(parentKey==null) {
    Row [] row = this.findByKey(parentKey, 1);
    RowSet rowSet = (RowSet)row[0].getAttribute("ChildVO");
    viewObject = rowSet.getViewObject();
    viewObject.setSortBy("DisplaySequence asc");
    }else {
    Row row = getCurrentRow();
    RowSet rowSet = (RowSet)row.getAttribute("ChildVO");
    viewObject = rowSet.getViewObject();
    viewObject.setSortBy("DisplaySequence asc");
    this.setQueryMode(ViewObject.QUERY_MODE_SCAN_DATABASE_TABLES |
    ViewObject.QUERY_MODE_SCAN_ENTITY_ROWS);
    this.executeQuery();
    For custom sort, lets say all the numbers should be display first in ascending order, and null or empty values to be display at the end need to override the getRowComparator method in the ChildViewImpl class,
    Here is the code for the same
    @Override
    public Comparator getRowComparator() {
    SortCriteria sortCriteria = new SortCriteriaImpl("DisplaySequence",false);
    SortCriteria [] sortCriterias = new SortCriteria[1];
    sortCriterias[0] = sortCriteria;
    return new DisplaySequenceComparator(sortCriterias);
    private class DisplaySequenceComparator extends RowComparator {
    public DisplaySequenceComparator(SortCriteria [] sortCriterias) {
    super(sortCriterias);
    public int compareRows(Row row1, Row row2) {
    Object dispSeqObj1;
    Object dispSeqObj2;
    Number dispSeq1 = null;
    Number dispSeq2 = null;
    boolean compareRow1 = true;
    boolean compareRow2 = true;
    if(row1!=null) {
    dispSeqObj1 = row1.getAttribute("DisplaySequence");
    if(dispSeqObj1!=null && dispSeqObj1 instanceof Number) {
    dispSeq1 = (Number)dispSeqObj1;
    }else {
    compareRow1 = false;
    if(row2!=null) {
    dispSeqObj2 = row2.getAttribute("DisplaySequence");
    if(dispSeqObj2!=null && dispSeqObj2 instanceof Number) {
    dispSeq2 = (Number)dispSeqObj2;
    }else {
    compareRow2 = false;
    if(compareRow1 && compareRow2) {
    if(dispSeq1.getValue() > dispSeq2.getValue()) {
    return 1;
    } else if(dispSeq1.getValue() == dispSeq2.getValue()) {
    return 0;
    } else {
    return -1;
    if(!compareRow1 && compareRow2)
    return 1;
    if(compareRow1 && !compareRow2)
    return -1;
    return 0;
    The above solution works properly, and sorts the child tree rows. But while saving the changes, update fails. I also came to know that in-memory sorting is applicable to read-only/transient view objects from some blogs and also mentiond in this link http://docs.oracle.com/cd/E24382_01/web.1112/e16182/bcadvvo.htm
    Is there any way that updatable view objects can be sorted and saved as well?
    Thanks,
    Abhishek
    Edited by: 930857 on May 2, 2012 7:12 AM

  • In a popup the tree table data is not getting displayed properly

    Hi,
    I have a taskflow which contains a tree table within a panelStetchLayout. Following is the taskflow code :
    <af:panelStretchLayout id="SecurityAdminManageRoles" bottomHeight="0" topHeight="auto" inlineStyle="width:725px;height:400px;">
    <f:facet name="center">
    <af:treeTable value="#{bindings.WebCenterSecurityDCPermission.treeModel}" var="node" expandAllEnabled="true" fetchSize="150" verticalGridVisible="false" horizontalGridVisible="true" columnSelection="none" rowBandingInterval="0" columnStretching="last" contentDelivery="immediate" summary="#{uib_o_w_w_r_WebCenter.SECURITY_PERMISSIONS}" disclosedRowKeys="#{webcenterAdminSecurityBean.disclosedRowKeySet}" inlineStyle="border:none" binding="#{webcenterAdminSecurityBean.rolesTable}" id="tt2" styleClass="AFStretchWidth" autoHeightRows="150">
    <f:facet name="nodeStamp">
    <af:column width="260"
    selected="false" noWrap="false" id="c3">
    <f:facet name="header">
    <af:outputText value="#{uib_o_w_w_r_WebCenter.LABEL_PERMISSIONS}"
    id="ot5"/>
    </f:facet>
    <af:panelGroupLayout id="pgl26">
    <af:forEach items="#{bindings.getRoleHeaders.result}" var="role">
    <af:outputText value="#{role.value}" visible="false" id="ot1"/>
    <af:selectBooleanCheckbox selected="#{node.dataProvider.serviceActions[role.value]}"
    rendered="#{!node.dataProvider.serviceHeader}"
    label="#{null}"
    disabled="#{(node.dataProvider.readOnly and role.seededRole) or node.dataProvider.actionDisabledMap[role.value] == true}"
    simple="true" id="sbc2">
    <f:attribute name="permission" value="#{node}"/>
    </af:selectBooleanCheckbox>
    </af:forEach>
    <af:spacer width="5" id="s2"/>
    <af:outputText value="#{node.name}" noWrap="false" id="ot2"
    inlineStyle="#{node.dataProvider.serviceHeader? 'font-weight:bolder;': ''}"/>
    </af:panelGroupLayout>
    </af:column>
    </f:facet>
    <af:column headerText="#{uib_o_w_w_r_WebCenter.LABEL_DESCRIPTION}" rowHeader="unstyled" noWrap="false" id="c1">
    <af:outputText value="#{node.description}" noWrap="false"
    inlineStyle="color:grey;" id="ot3"/>
    </af:column>
    </af:treeTable>
    </f:facet>
    </af:panelStretchLayout>
    </jsp:root>
    This taskflow is included as a region within another page :
    <af:commandToolbarButton id="cb3"
    shortDesc="#{uib_o_w_w_r_WebCenter.LABEL_EDIT_PERMISSION_HINT}"
    icon="/adf/webcenter/edit_sm_ena.png"
    text="#{uib_o_w_w_r_WebCenter.LABEL_EDIT_PERMISSION}"
    inlineStyle="align:left">
    <af:showPopupBehavior popupId="managePopup"/>
    </af:commandToolbarButton>
    <af:popup id="managePopup" contentDelivery="lazyUncached">
    <af:dialog modal="true" type="cancel"
    title="#{requestContext.formatter[uib_o_w_s_r_Spaces.EDIT_ROLE][pageFlowScope.o_w_wa_spacesRoleBacker1.selectedRole.value == webcenterAdminSecurityBean.spacesUsersRole ? uib_o_w_s_r_Spaces.LABEL_AUTH_USER : pageFlowScope.o_w_wa_spacesRoleBacker1.selectedRole.value]}"
    titleIconSource="/adf/webcenter/empty.png" id="d4">
    <af:region value="#{bindings.editroletaskflow.regionModel}"
    id="r2"/>
    <f:facet name="buttonBar">
    <af:commandButton partialSubmit="true"
    text="#{uib_o_w_w_r_WebCenter.LABEL_SAVE}"
    actionListener="#{o_w_w_i_v_b_webCenterViewUtilsBean.saveChangesAndCloseWCLinksPopup}"
    id="cb4">
    <f:attribute value="#{bindings.editroletaskflow.regionModel}"
    name="wcRegionModel"/>
    <f:attribute value="bindings.saveRoles.execute"
    name="wcMethodToExecute"/>
    </af:commandButton>
    </f:facet>
    </af:dialog>
    </af:popup>
    In the main page, there is a table, I select one row and then click on this commandButton, which launches the popup.
    The problem here is that when I launch the popup, there are many rows in the table and hence a scroll bar appears. Scroll down the popup and close the popup.
    Again I launch the popup, I see that the popup displays in the same state as it was closed before, i.e the scrollbar is at the bottom and the first row is not displayed.

    ...also do not forget to:
    1. adjust the Active property for the task flow binding (in the pageDef).
    Set property value to the true on popupFetchListener, and to the false when closing popup
    2. for the af:popup containing region, set childCreation to deffered

  • Tree Table is not getting refreshed properly in Jdev 11.1.2.0

    Hi,
    I am seeing a peculiar issue with tree table not getting refreshed in Jdev 11.1.2.0.
    Let me explain you my use case.
    I have a tree table in a page, where the first column is displayed as selectBooleanRadio component. When user selects this selectBooleanRadio component, that treetable node should get expanded and at the same time all the child records(I have a select boolean check box component(transient attribute) at the child level) for that node should get selected. This is to allow user to unselect the child records, which he/she does not want to process further(some functionality).
    Now when the user selects any radio button, the tree table node is not expanded, but the arrow beside the radio button for that node can be seen as expanded.
    I thought it may be a partial trigger issue, so i tried refreshing the tree table programatically as well. But it was of no use.
    Then I set the partial triggers wrt to SelectBooleanRadio component on the parent container of the TreeTable. After which somehow the node got expanded but the tree table shrinks in width and the actual disclosure functionality of a tree table is lost.
    The same use case works perfectly fine in Jdev 11.1.1.5.
    For reference:
    I created a sample test case(Dept/Emp) in jdev version 11.1.1.5, which works fine. Workspace: http://adf-use-cases.googlecode.com/files/TreeTable1.rar
    But the same test case, when i created in jdev version 11.1.2.0, gives issues. Workspace: http://adf-use-cases.googlecode.com/files/TreeTableUseCase.rar
    If you download the application and run in respective jdev version, you will get to know more about the issue.
    Please let me know, If I am doing anything wrong in the implementation of this use case.
    Any help/suggestions are appreciated.
    Thanks
    Umesh
    Note: My complete application is in Jdev 11.1.2.0, so I can't degrade my jdev version to 11.1.1.5.

    Thanks Frank for the reply.
    But upgrading the jdeveloper to 11.1.2.2 is not an ideal solution for us now, because of the size of the project.
    Some how, the issue of refreshing the tree table is resolved. I am using a command button with clientComponent to true and causing a full page refresh.
    I am not sure, if this is a perfect solution.
    As you said, that this behavior may be an issue with the Jdev version 11.1.2.0, I am using. I am going with the above said approach.

  • How to use tree tables with CRUD operation for begineers ADF 11g

    This is Friday night call for help.
    This is only few sample ressources on the web for tree table and only one with CRUD operation.
    I used this one http://jobinesh.blogspot.com/2010/05/crud-operations-on-tree-table.html because this is the only one that address CRUD.
    And it is shaky. Deletion works fine but insertion not very well. This is working using custom code provided below.
    Depending if the user selection in the tree, the code insert from the master node to the children node.
    Any other options because it is not working well.
    Also where Oracle describes how to use the row, rowset, itorator API? This is really hard to understand like almost if we should not use it.
    then if not how can I insert in tree with two nodes and insert in the parent or children depending the users selection.
    Lately I 'been posting questions on this forum with no response. This hurts. I understand developers cannot spend their time on this but People from Oracle, please help. We pay licenses...
    public void createChildren(RowIterator ri, Key selectedNodeKey) {
    final String deptViewDefName = "model.DepartmentsView";
    final String empViewDefName = "model.EmployeesView";
    if (ri != null && selectedNodeKey != null) {
    Row last = ri.last();
    Key lastRowKey = last.getKey();
    // if the select row is not the last row in the row iterator...
    Row[] found = ri.findByKey(selectedNodeKey, 1);
    if (found != null && found.length == 1) {
    Row foundRow = found[0];
    String nodeDefname =
    foundRow.getStructureDef().getDefFullName();
    if (nodeDefname.equals(deptViewDefName)) {
    RowSet parents =
    (RowSet)foundRow.getAttribute("EmployeesView");
    Row childrow = parents.createRow();
    parents.insertRow(childrow);
    } else {
    RowSet parents =
    (RowSet)foundRow.getAttribute("EmployeesView");
    Row childrow = parents.createRow();
    childrow.setAttribute("DepartmentId",
    foundRow.getAttribute("DepartmentId"));
    parents.insertRow(childrow);
    } else {
    System.out.println("Node not Found for " + selectedNodeKey);
    }

    I am looking for a sample that describe how to design a jsf page with a tree table.
    So you have Department and employees. In the tree first comes Department and if you click the node you see the employees assigned to this department.
    I need to be able to insert a new department or a new employee from the tree table by clicking on a insert button in the panel collection toolbar depending on user selection in the tree.
    I got part of it working but not good enough.
    By problem is the get insertion working
    I have a createChildren method in my AM implementation that get in input a RowIterator and selected node key.
    To goal is to create new records depending of the user selection and the input parameters get populated by the binding like this:
    #{backing_treeSampleBean.selectedNodeRowIterator} #{backing_TreeSampleBean.selectedNodeRowkey} via method binding with parameters.
    Is it the right approach?
    First to be able to insert a parent record, I select nothing in the tree and ri and selectedNodeKey comes to null
    we run this code
    ViewObjectImpl vo = getSchHolidaySchedExceptionsView1();
    //ViewObjectImpl vo = getDepartmentsView1();
    Row foundRow = vo.first();
    Row childrow = vo.createRow();
    vo.insertRow(childrow);
    A new blank entry appears in the parent node and we enter a value.
    The the problem starts when we want to add a child to this parent.
    We select the created parent and press the insert button, this code get executed
    if (nodeDefname.equals(deptViewDefName))
    //list of the children of the parent and create an new row
    RowSet childRows = (RowSet)foundRow.getAttribute("SchHolidayExceptionDatesView");
    Row childrow = childRows.createRow();
    childRows.insertRow(childrow);
    But the new entry does not appear, it is almost like it would be created for a different parent because this is a mandatory field that is not feel in yet and the interface complaints of a missing value. It is created somewhere just not a the right place... This is my guess.
    Do you see something wrong with the code?
    The full code og my create children method is there below
    I am using jdeveloper 11.1.1.3.0 any issues with tree table to know about with this version?
    Thanks for your help
    public void createChildren(RowIterator ri, Key selectedNodeKey) {
    final String deptViewDefName = "com.bcferries.app.pdfroutesched.model.SchHolidaySchedExceptionsView";
    final String empViewDefName = "com.bcferries.app.pdfroutesched.model.SchHolidayExceptionDatesView";
    if (ri != null && selectedNodeKey != null) {
    // last row
    Row last = ri.last();
    Key lastRowKey = last.getKey();
    // if the select row is not the last row in the row iterator...
    Row[] found = ri.findByKey(selectedNodeKey, 1);
    if (found != null && found.length == 1) {
    // foundRow is the row selected
    Row foundRow = found[0];
    // The row selected can be the parent node or the child node
    String nodeDefname = foundRow.getStructureDef().getDefFullName();
    // if parent row
    if (nodeDefname.equals(deptViewDefName))
    //list of the children of the parent and create an new row
    //works but we try to resolve the creation of a parent
    RowSet childRows = (RowSet)foundRow.getAttribute("SchHolidayExceptionDatesView");
    Row childrow = childRows.createRow();
    //childrow.setAttribute("HolidayDate", new java.util.Date().getDate());
    System.out.println("insert child row from master");
    childRows.insertRow(childrow);
    } else
    //RowSet ParentRow = (RowSet)foundRow.getAttribute("SchHolidaySchedExceptionsView");
    //RowSet childRows = (RowSet)ParentRow.first().getAttribute("SchHolidayExceptionDatesView");
    Row childrow = ri.createRow();
    System.out.println("insert child row from child ");
    } else {
    System.out.println("Node not Found for " + selectedNodeKey);
    } else {
    System.out.println(" param null try creating for first row : " +
    ri + " * " + selectedNodeKey);
    ViewObjectImpl vo = getSchHolidaySchedExceptionsView1();
    Row foundRow = vo.first();
    Row childrow = vo.createRow();
    vo.insertRow(childrow);
    }

  • [SOLVED] Multiple Dynamic View Objects and View Links - ADF Tree Table

    Hi all,
    I've got a method that creates 3 dynamic viewobjects using this:
                ViewDefImpl Level1ViewDef = new ViewDefImpl("Level1View");
                Level1ViewDef.addViewAttribute("LevelDescription","LEVEL1_DESCRIPTION",String.class);
                Level1ViewDef.addViewAttribute("SetOfBooksId","SET_OF_BOOKS_ID",Number.class);
                Level1ViewDef.addViewAttribute("CodeCombinationId","CODE_COMBINATION_ID",Number.class);
                Level1ViewDef.addViewAttribute("Level1","LEVEL1",String.class);
                Level1ViewDef.addViewAttribute("AccountType","ACCOUNT_TYPE",String.class);
                Level1ViewDef.addViewAttribute("PeriodYear","PERIOD_YEAR",Number.class);
                Level1ViewDef.addViewAttribute("PeriodNum","PERIOD_NUM",Number.class);
                Level1ViewDef.addViewAttribute("PeriodName","PERIOD_NAME",String.class);
                Level1ViewDef.addViewAttribute("PtdActual","PTD_ACTUAL",Number.class);
                Level1ViewDef.addViewAttribute("YtdActual","YTD_ACTUAL",Number.class);
                Level1ViewDef.addViewAttribute("LtdActual","LTD_ACTUAL",Number.class);
                Level1ViewDef.addViewAttribute("BudgetName","BUDGET_NAME",String.class);
                Level1ViewDef.addViewAttribute("BudgetVersionId","BUDGET_VERSION_ID",Number.class);
                Level1ViewDef.addViewAttribute("PtdBudget","PTD_BUDGET",Number.class);
                Level1ViewDef.addViewAttribute("YtdBudget","YTD_BUDGET",Number.class);
                Level1ViewDef.addViewAttribute("LtdBudget","LTD_BUDGET",Number.class);
                Level1ViewDef.addViewAttribute("EncumbranceType","ENCUMBRANCE_TYPE",String.class);
                Level1ViewDef.addViewAttribute("EncumbranceTypeId","ENCUMBRANCE_TYPE_ID",Number.class);
                Level1ViewDef.addViewAttribute("PtdCommitment","PTD_COMMITMENT",Number.class);
                Level1ViewDef.addViewAttribute("YtdCommitment","YTD_COMMITMENT",Number.class);
                Level1ViewDef.addViewAttribute("LtdCommitment","LTD_COMMITMENT",Number.class);
                Level1ViewDef.setQuery(sql_level1);
                Level1ViewDef.setFullSql(true);
                Level1ViewDef.setBindingStyle(SQLBuilder.BINDING_STYLE_ORACLE_NAME);
                Level1ViewDef.resolveDefObject();
                Level1ViewDef.registerDefObject();
                ViewObject vo1 = createViewObject("Level1View",Level1ViewDef);I can create the view objects fine and create a single viewlink between two of them, however i'm getting problems with 2 view links.
    This is how I'm creating a view link:
                ViewLink Level2Level1FKLink = createViewLinkBetweenViewObjects("Level2Level1FKLink1",
                                                        "Level2View",
                                                        vo1,
                                                        new AttributeDef[]{
                                                          vo1.findAttributeDef("Level1")
                                                        vo2,
                                                        new AttributeDef[]{
                                                          vo2.findAttributeDef("Level1")
                                                        "LEVEL1 = :Bind_Level1");
                ViewLink Level3Level2FKLink = createViewLinkBetweenViewObjects("Level3Level2FKLink1",
                                                        "Level3View",
                                                        vo2,
                                                        new AttributeDef[]{
                                                          vo2.findAttributeDef("Level2")
                                                        vo3,
                                                        new AttributeDef[]{
                                                          vo3.findAttributeDef("Level2")
                                                        "LEVEL2 = :Bind_Level2");I can get the data to display on an adf tree table if i'm only using a single view link, but when i try and implement 2 view link (for 3 levels on the adf tree table) i'm getting problems displaying the data.
    I'm getting the following error:
    Aug 10, 2007 2:44:39 PM oracle.adfinternal.view.faces.renderkit.core.xhtml.PanelPartialRootRenderer encodeAll
    SEVERE: Error during partial-page rendering
    oracle.jbo.NoDefException: JBO-25058: Definition Level3View of type Attribute not found in Level2View_Level2Level1FKLink1_Level2ViewThe thing is, Level3View isn't in the Level2Level1FKLink viewlink.
    I've been reading about something similar here
    BC4J Master-Detail-Detail
    but I am still unsure of what the problem is.
    Thanks in advance.

    I found the answer here:
    http://radio.weblogs.com/0118231/stories/2004/06/10/correctlyImplementingMultilevelDynamicMasterDetail.html

  • Insert an HTML Table tag as a value in a Tree Table

    Hi helper,
    Can I insert an HTML Table tag inside a TreeTable (Hierarchical data) using AdvancedDataGrid as a value?
    I need to create a Tree table in flex and I have beside normal int values some cells that need to show a certain images in an HTML Table I will create.
    Is it possible?
    Please advice
    Thanks
    Jo

    <div class=Section1><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>It depends on where you get the list of images<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Alex Harui<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Flex SDK Developer<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><a href="http://www.adobe.com/"><span style='color:blue'>Adobe<br />Systems Inc.</span></a><o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Blog: <a href="http://blogs.adobe.com/aharui"><span<br />style='color:blue'>http://blogs.adobe.com/aharui</span></a><o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><br /><br /><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span<br />style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Yossi Bar<br />[mailto:[email protected]] <br><br /><b>Sent:</b> Monday, February 09, 2009 1:14 AM<br><br /><b>To:</b> [email protected]<br><br /><b>Subject:</b> Re: Insert an HTML Table tag as a value in a Tree Table<o:p></o:p></span></p><br /><br /></div><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'>A new message was posted by<br />Yossi Bar in <br><br /><br><br /><b>Developers</b> --<br><br />  Insert an HTML Table tag as a value in a Tree Table<br><br /><br><br />Thanks Alex, <br><br />What is the way to implement HorizontalLIst of images for<br />AdvancedDataGridColumn? <br><br /><br><br />In the code here I create a tree table and in Actual column I show an image: <br><br /><br><br />&lt;mx:AdvancedDataGrid width=&quot;100%&quot; height=&quot;100%&quot;<br />folderClosedIcon=&quot;{null}&quot; folderOpenIcon=&quot;{null}&quot;<br />defaultLeafIcon=&quot;{null}&quot;&gt; <br><br /><br><br />&lt;mx:dataProvider&gt; <br><br />            &lt;mx:HierarchicalData<br />source=&quot;{dpHierarchy}&quot;/&gt; <br><br />        &lt;/mx:dataProvider&gt; <br><br />        &lt;mx:groupedColumns&gt; <br><br />         &lt;mx:AdvancedDataGridColumn<br />headerText=&quot;&quot; width=&quot;50&quot;/&gt; <br><br />            &lt;mx:AdvancedDataGridColumn<br />dataField=&quot;Region&quot; backgroundColor=&quot;haloSilver&quot;<br />headerText=&quot;Region title&quot;<br />headerRenderer=&quot;mx.controls.Label&quot;/&gt; <br><br />            &lt;mx:AdvancedDataGridColumnGroup<br />headerText=&quot;Group Header&quot;<br />headerRenderer=&quot;mx.controls.Label&quot;&gt; <br><br />&lt;mx:AdvancedDataGridColumn dataField=&quot;Territory_Rep&quot;<br />headerText=&quot;Territory Rep&quot;<br />headerRenderer=&quot;mx.controls.Label&quot;/&gt; <br><br />&lt;mx:AdvancedDataGridColumn dataField=&quot;Actual&quot;<br />headerText=&quot;Actual title&quot;<br />headerRenderer=&quot;mx.controls.Label&quot;&gt; <br><br />&lt;mx:itemRenderer&gt; <br><br />&lt;mx:Component&gt; <br><br />&lt;mx:VBox horizontalAlign=&quot;center&quot;&gt; <br><br />&lt;mx:Image width=&quot;50&quot; source=&quot;{data.Actual}&quot;/&gt; <br><br />&lt;/mx:VBox&gt; <br><br />&lt;/mx:Component&gt; <br><br />&lt;/mx:itemRenderer&gt; <br><br />&lt;/mx:AdvancedDataGridColumn&gt; <br><br /><br><br />&lt;mx:AdvancedDataGridColumn dataField=&quot;Estimate&quot;<br />headerText=&quot;Estimate title&quot; headerRenderer=&quot;mx.controls.Label&quot;/&gt;<br /><br><br />            &lt;/mx:AdvancedDataGridColumnGroup&gt;<br /><br><br />        &lt;/mx:groupedColumns&gt; <br><br />    &lt;/mx:AdvancedDataGrid&gt; <br><br /><br><br />Please advise, <br><br /><br><br />Thanks <br><br /><br><br />Jo <o:p></o:p></p><br /><br /><div class=MsoNormal><br /><br /><hr size=2 width=200 style='width:150.0pt' align=left><br /><br /></div><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'>View/reply at <a<br />href="http://www.adobeforums.com/webx?13@@.59b7d1ae/2">Insert an HTML Table tag<br />as a value in a Tree Table</a><br><br />Replies by email are OK.<br><br />Use the <a<br />href="http://www.adobeforums.com/webx?280@@.59b7d1ae!folder=.3c060fa3">unsubscribe</a>< br />form to cancel your email subscription.<o:p></o:p></p><br /><br /></div>

  • Question on the ADF Tree Table

    Hi, I am using Jdev 10.1.3.2 and ADF BC. I have created a ADF Tree Table to display multiple attributes, both the master and detail VO are based on the same EO. It seems all of attributes are displayed in one colume, and there is no column heading, is that possible to add column heading and display in multiple columns?
    Thanks!

    Hi,
    actually the node stamp doesn't accept more than one column element
    Frank

Maybe you are looking for