Java3D - how to get the viewing frustum coordinates

Hi all!
I am so desperate to find out how to retrieve the viewing frustum (truncated pyramid) coordinates (xyz) in Java3D.
Please let me know. I checked the API docs but no luck.
I am sure there must be some way (or method) of extracting these (xyz) coodrinates from this frustum.
Thanks!

firstly I humbly admit I am not that familiar with openGL so I dont know what those functions are doing ..but still I might be missing what is it you are looking for...u saying "to get xyz" coordinates of truncated pyramid ... u need 8 points (depending on the way you wanna calculate it)to create viewing frustum so which one u looking for? ....btw there is a viewing frustum method to get points but unfortunately due to j3d setup by the time u get them using that method 2 frames will go by .... so
View view = viewer.getView();
double point1 = view.getBackClipDistance() * SOME_CONSTANT;
double point2 = view.getFrontClipDistance();
double point3 = view.getFieldOfView();
double point4 = (double) view.getCanvas3D(0).getWidth() /
(double) view.getCanvas3D(0).getHeight();
double point5 = Math.tan(point3 / SOME_CONSTANT) * point2;
double point6 = point5 / point4;
double point7 = (point5 / point1) * point1;
double point8 = point7 / point4;
now just just normals and u can setup up your 6 planes of the view frustum ...

Similar Messages

  • How to get the view Object in UserDefined Action

    Hi  All,
       Any body tell me how to get the view object , like the view object avilable in the wdDoModifyView() method as parameter.
    I have requirement like, i want to change the , no of rows displaying in the table should be changed at the runtime based onthe no of rows  selected in the dropdown box.
    The action which i created will be assigned to that dropdown box, on select of the available option, i will get the view object and change the properties of the "maxrows" of the table .
    so for getting the view object in the  the Action methods tell me what is the procedure for getting the current view object.

    Hello Vishal,
    Simply create a value attribute (say rowCount) of type 'integer' and bind it to the 'visibleRowCount' property of your table. Then, in the actionHandler get the value from the UI element (in your case, I guess it is drop down) and set it to the attribute 'rowCount' like this.
    wdContext.currentContextElement.setRowCount(
        wdContext.current<nodeElement>.set<AttributeBound toDropDown>);
    Bala

  • How to get the View for a particular Document position?

    Hi there,
    Does anyone know how to get the "deepest" View that is responsible for rendering a particular Document offset?
    I tried looking at modelToView() and some other methods, but I am lost.
    Can anyone please help me?
    Thanks,
    Swati

    Bart--
    To find the table cell of the insertion point, you could use something like:
    InterfacePtr<ITextStoryThread> storythreadp(txtModel->QueryStoryThread(startPos + 1));
    InterfacePtr<ICellContent> cellcontentp(storythreadp, UseDefaultIID());
    if (! cellcontentp) {
      // Not a table cell, so see if it's the primary thread (kTextStoryBoss/ITextModel).
      InterfacePtr<ITextModel> threadmodelp(storythreadp, UseDefaultIID());
      if (threadmodelp) {
        // It's the primary thread...
      else {
        // It's something else with an ITextStoryThread (note, footnote, etc.).
    else {
      // The insertion point's in a table cell (kTextCellContentBoss).
      InterfacePtr<ITableModel> tableModel(cellcontentp->GetTableModel(), UseDefaultIID());
      GridID gridID(cellcontentp->GetGridID());
      GridAddress gridLoc(cellcontentp->GetGridAddress());
      // ...and so on.
    Hope this helps get you where you want to go.
    Chris Roueche / Freelance Developer

  • How to get the view link definition from the view link accessor

    Hi,
    I am using Jdev 10.1.3 and ADF BC. I am trying to do deep copy in a master/details view, after the new child record is created, I want to update the foreign key attribute. I know I can get the list of attribute definitions from the row in the view object, which include the view link accessors, I am wondering if I can get the view link definition from the view link accessors, so that I can get the source and destination attribute names.
    Thanks!

    Hi,
    you should get this through
    ViewObject vo = this.findViewObject("LocationsView1");
    int indx = vo.getAttributeIndexOf("DepartmentsView");
    ViewAttributeDefImpl vAttrDefImpl = (ViewAttributeDefImpl) vo.getAttributeDef(indx);
    ViewLinkDefImpl vdefImpl = (ViewLinkDefImpl) vAttrDefImpl.findViewLinkDefImpl();
    Note that this code starts from the ApplicationModuleImpl class, which is why I used this.findViewObject().
    Frank

  • How to get the view tree from a jsp page

    Hi,
    I would like to get the view tree of a jsp page. The idea is to dynamically include the content of one or more jsf pages into a UIPanel during a "value changed" event.
    So, i could get from an arbitrary page like ...
    <%@ taglib uri="http://java.sun.com/jsf/core"   prefix="f" %>
    <%@ taglib uri="http://java.sun.com/jsf/html"   prefix="h" %>
    <h:panelGrid columns="3" width="100%" rowClasses="gridTop">
        <h:outputText value="#{someBean.someValue}"/>
    </h:panelGrid>... the corresponding List of components...
    Any idea?

    Thanks for your answer Jayashri,
    The view tree can be retrieved by this way during the page is parsed, for example with scriptlets <%%>, or once the page has been parsed (the view has been builded and attached to the FacesContext).
    My problem is to get the view tree of a page from another Context.
    The idea is to build a dynamic layout of some pages that represents "views". I can imagine this like the concept of perspectives and views of Eclipse IDE.
    Because of the difficulty to build it with pure JSP (cannot use dynamic ID nor JSTL ForEach), I try to build it into my backing bean and to bind it with a <h:panelGrid/>. By this way, I'm not able to use the <jsp:include/> tag as I usually did to include some content into the view tree.
    Sorry for my english ;)
    - Renaud.

  • RowSetInfo; bc4j; how to get the View Object

    So I'm trying to get/update/insert/delete records in a database that contain an interMedia image in a blob.
    I've figured out that I can't simply set the ImmediateAccess attribute. It doesn't like that...
    So I'm trying to go after the view object, since the interMedia white paper uses a VO row setAttribute to accomplish the write.
    RowSetInfo extends ResultSetInfo which has a method getViewObject(). Cool.
    So I try it... and get an error that getViewObject() has protected access.
    Anyone know what I am doing wrong? Or should I be even taking this approach?!?!?!
    If I go exclusively with the VO layer... how do I preserve the navigationBar functionality? Or do I need to roll my own?
    ( NOTE: This hilights another example of the perception of 'friction' between rowsetinfos and the view objects/entity objects. An approach that makes "sense" to me as a naive novice didn't pan out. And oddly, most of the bc4j examples go against VOs when, if you are an application programmer, you may never see or use the VO methods ( although it looks like we should be)... we're working at the ResultSetInfo layer. )
    Is the the observation of other folk who are building Java Applications/Applets? Or do you all work directly with VOs instead of going through the ResultSetInfo "layer"?

    Here is some sample code that I am currently working on and will post on OTN when complete. The code shows how to access a BC4J Domain based on an Oracle type. Working with interMedia is similar since interMedia utilizes Oracle Object types. Please note that I have not tested this yet against interMedia, but I'm hoping that you may find the general process useful.
    // Copyright (c) 2000 Oracle Corporation
    package ObjectSampleDAC;
    import oracle.dacf.control.swing.*;
    import javax.swing.*;
    import oracle.dacf.dataset.*;
    import oracle.dacf.dataset.connections.*;
    import java.awt.*;
    import oracle.jdeveloper.layout.*;
    import java.awt.event.*;
    import javax.infobus.*;
    import oracle.jbo.domain.DomainInterface;
    import ObjectSampleBC4J.common.TAddress;
    import java.sql.SQLException;
    * A Frame class.
    * <P>
    * @author Scott Tiger
    public class Frame1 extends InfoFrame {
    * Constructs a new instance.
    public Frame1() {
    super();
    try {
    jbInit();
    sessionInfo1.publishSession();
    // call my initialization method
    bfInit();
    catch (Exception e) {
    e.printStackTrace();
    * Initializes the state of this instance.
    private void jbInit() throws Exception {
    /* All of the following code in this method was added by the designer except where noted below
    EmailrowSetInfo1.setName("Email");
    jPanel3.setLayout(gridBagLayout1);
    StatusrowSetInfo1.setName("Status");
    AddressrowSetInfo1.setName("Address");
    PasswordrowSetInfo1.setName("Password");
    UsernamerowSetInfo1.setName("Username");
    LastnamerowSetInfo1.setName("Lastname");
    FirstnamerowSetInfo1.setName("Firstname");
    IdrowSetInfo1.setName("Id");
    rowSetInfo1.setAttributeInfo( new AttributeInfo[] {
    IdrowSetInfo1,
    FirstnamerowSetInfo1,
    LastnamerowSetInfo1,
    UsernamerowSetInfo1,
    PasswordrowSetInfo1,
    AddressrowSetInfo1,
    StatusrowSetInfo1,
    EmailrowSetInfo1} );
    this.setDataItemName("infobus:/oracle/sessionInfo1");
    this.setTitle("Customer Information");
    this.getContentPane().setLayout(borderLayout1);
    this.setSize(new Dimension(536, 473));
    jPanel1.setLayout(borderLayout2);
    sessionInfo1.setAppModuleInfo(new ModuleInfo("ObjectSampleBC4J", "ObjectSampleBC4JModule"));
    sessionInfo1.setConnectionInfo(new LocalConnection("MyJdbcConn"));
    sessionInfo1.setName("sessionInfo1");
    rowSetInfo1.setQueryInfo(new QueryViewInfo(
    "CustomerView",
    rowSetInfo1.setSession(sessionInfo1);
    rowSetInfo1.setName("rowSetInfo1");
    /* The following listener was added using the event tab in the property inspector in design
    mode. The rowsetPopulated method is called when the rowset is queried/requeried.
    rowSetInfo1.addChangeListener(new oracle.dacf.dataset.ChangeAdapter() {
    public void rowsetPopulated(RowSetChangeEvent e) {
    rowSetInfo1_rowsetPopulated(e);
    textFieldControl1.setText("textFieldControl1");
    textFieldControl2.setDataItemName("infobus:/oracle/sessionInfo1/rowSetInfo1/Firstname");
    textFieldControl2.setText("textFieldControl2");
    textFieldControl3.setDataItemName("infobus:/oracle/sessionInfo1/rowSetInfo1/Lastname");
    textFieldControl3.setText("textFieldControl3");
    textFieldControl4.setDataItemName("infobus:/oracle/sessionInfo1/rowSetInfo1/Username");
    textFieldControl4.setText("textFieldControl4");
    textFieldControl5.setDataItemName("infobus:/oracle/sessionInfo1/rowSetInfo1/Password");
    textFieldControl5.setText("textFieldControl5");
    textFieldControl6.setDataItemName("infobus:/oracle/sessionInfo1/rowSetInfo1/Status");
    textFieldControl6.setText("textFieldControl6");
    textFieldControl7.setDataItemName("infobus:/oracle/sessionInfo1/rowSetInfo1/Email");
    textFieldControl7.setText("textFieldControl7");
    navigationBar1.setDataItemName("infobus:/oracle/sessionInfo1/rowSetInfo1");
    jLabel1.setText("ID:");
    jLabel2.setText("First Name:");
    jLabel3.setText("Last Name:");
    jLabel4.setText("User Name:");
    jLabel5.setText("Password:");
    jLabel6.setText("Status:");
    jLabel7.setText("Email:");
    jLabel8.setText("Address:");
    jPanel4.setLayout(      gridBagLayout2);
    textFieldStreet.setColumns(20);
    textFieldStreet.setText("textFieldStreet");
    /* The following listener (as well as the listeners on textFieldCity, textFieldState, and
    textFieldZipcode were added by the designer, but the focusGained and focusLost methods
    were modified in each case to call a common textField_focusGained method
    textFieldStreet.addFocusListener(new java.awt.event.FocusAdapter() {
    public void focusGained(FocusEvent e) {
    textField_focusGained(e);
    public void focusLost(FocusEvent e) {
    textField_focusLost(e);
    textFieldCity.setColumns(20);
    textFieldCity.setText("textFieldCity");
    textFieldCity.addFocusListener(new java.awt.event.FocusAdapter() {
    public void focusGained(FocusEvent e) {
    textField_focusGained(e);
    public void focusLost(FocusEvent e) {
    textField_focusLost(e);
    textFieldState.setColumns(20);
    textFieldState.setText("textFieldState");
    textFieldState.addFocusListener(new java.awt.event.FocusAdapter() {
    public void focusGained(FocusEvent e) {
    textField_focusGained(e);
    public void focusLost(FocusEvent e) {
    textField_focusLost(e);
    textFieldZipcode.setColumns(20);
    textFieldZipcode.setText("textFieldZipcode");
    textFieldZipcode.addFocusListener(new java.awt.event.FocusAdapter() {
    public void focusGained(FocusEvent e) {
    textField_focusGained(e);
    public void focusLost(FocusEvent e) {
    textField_focusLost(e);
    jLabel9.setText("Street:");
    jLabel10.setText("City:");
    jLabel11.setText("State:");
    jLabel12.setText("Zip Code:");
    textFieldControl1.setDataItemName("infobus:/oracle/sessionInfo1/rowSetInfo1/Id");
    this.getContentPane().add(jPanel1, BorderLayout.CENTER);
    jPanel1.add(jPanel2, BorderLayout.NORTH);
    jPanel2.add(navigationBar1, null);
    jPanel1.add(jPanel3, BorderLayout.CENTER);
    jPanel3.add(textFieldControl1, new GridBagConstraints2(1, 0, 1, 1, 1.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(37, 11, 0, 0), 0, 0));
    jPanel3.add(textFieldControl2, new GridBagConstraints2(1, 1, 1, 1, 1.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(7, 11, 0, 0), 0, 0));
    jPanel3.add(textFieldControl3, new GridBagConstraints2(1, 2, 1, 1, 1.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(7, 11, 0, 0), 0, 0));
    jPanel3.add(textFieldControl4, new GridBagConstraints2(1, 3, 1, 1, 1.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(6, 11, 0, 0), 0, 0));
    jPanel3.add(textFieldControl5, new GridBagConstraints2(1, 4, 1, 1, 1.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(6, 11, 0, 0), 0, 0));
    jPanel3.add(textFieldControl6, new GridBagConstraints2(1, 5, 1, 1, 1.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(7, 11, 0, 0), 0, 0));
    jPanel3.add(textFieldControl7, new GridBagConstraints2(1, 6, 1, 1, 1.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(6, 11, 0, 0), 0, 0));
    jPanel3.add(jLabel1, new GridBagConstraints2(0, 0, 1, 1, 0.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(37, 106, 0, 0), 0, 0));
    jPanel3.add(jLabel2, new GridBagConstraints2(0, 1, 1, 1, 0.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(8, 54, 0, 0), 0, 0));
    jPanel3.add(jLabel3, new GridBagConstraints2(0, 2, 1, 1, 0.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(8, 54, 0, 0), 0, 0));
    jPanel3.add(jLabel4, new GridBagConstraints2(0, 3, 1, 1, 0.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(10, 54, 0, 0), 0, 0));
    jPanel3.add(jLabel5, new GridBagConstraints2(0, 4, 1, 1, 0.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(8, 62, 0, 0), 0, 0));
    jPanel3.add(jLabel6, new GridBagConstraints2(0, 5, 1, 1, 0.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(9, 83, 0, 0), 0, 0));
    jPanel3.add(jLabel7, new GridBagConstraints2(0, 6, 1, 1, 0.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(9, 86, 0, 0), 0, 0));
    jPanel3.add(jLabel8, new GridBagConstraints2(0, 7, 1, 1, 0.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(7, 72, 94, 0), 0, 0));
    jPanel3.add(jPanel4, new GridBagConstraints2(1, 7, 1, 1, 0.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    jPanel4.add(textFieldZipcode, new GridBagConstraints2(1, 3, 1, 1, 0.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 10, 0, 0), 0, 0));
    jPanel4.add(textFieldState, new GridBagConstraints2(1, 2, 1, 1, 0.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 10, 0, 0), 0, 0));
    jPanel4.add(jLabel9, new GridBagConstraints2(0, 0, 1, 1, 0.0, 0.0,
    GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 0, 0, 0), 0, 0));
    jPanel4.add(textFieldStreet, new GridBagConstraints2(1, 0, 1, 1, 0.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 10, 0, 0), 0, 0));
    jPanel4.add(jLabel10, new GridBagConstraints2(0, 1, 1, 1, 0.0, 0.0,
    GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 0, 0, 0), 0, 0));
    jPanel4.add(jLabel11, new GridBagConstraints2(0, 2, 1, 1, 0.0, 0.0,
    GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 0, 0, 0), 0, 0));
    jPanel4.add(jLabel12, new GridBagConstraints2(0, 3, 1, 1, 0.0, 0.0,
    GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 0, 0, 0), 0, 0));
    jPanel4.add(textFieldCity, new GridBagConstraints2(1, 1, 1, 1, 0.0, 0.0,
    GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 10, 0, 0), 0, 0));
    /* The following vaiable declarations were made by the designer
    BorderLayout borderLayout1 = new BorderLayout();
    JPanel jPanel1 = new JPanel();
    SessionInfo sessionInfo1 = new SessionInfo();
    RowSetInfo rowSetInfo1 = new RowSetInfo();
    AttributeInfo IdrowSetInfo1 = new AttributeInfo(java.sql.Types.NUMERIC);
    AttributeInfo FirstnamerowSetInfo1 = new AttributeInfo(java.sql.Types.VARCHAR);
    AttributeInfo LastnamerowSetInfo1 = new AttributeInfo(java.sql.Types.VARCHAR);
    AttributeInfo UsernamerowSetInfo1 = new AttributeInfo(java.sql.Types.VARCHAR);
    AttributeInfo PasswordrowSetInfo1 = new AttributeInfo(java.sql.Types.VARCHAR);
    AttributeInfo AddressrowSetInfo1 = new AttributeInfo();
    AttributeInfo StatusrowSetInfo1 = new AttributeInfo(java.sql.Types.VARCHAR);
    AttributeInfo EmailrowSetInfo1 = new AttributeInfo(java.sql.Types.VARCHAR);
    JPanel jPanel2 = new JPanel();
    JPanel jPanel3 = new JPanel();
    TextFieldControl textFieldControl1 = new TextFieldControl();
    TextFieldControl textFieldControl2 = new TextFieldControl();
    TextFieldControl textFieldControl3 = new TextFieldControl();
    TextFieldControl textFieldControl4 = new TextFieldControl();
    TextFieldControl textFieldControl5 = new TextFieldControl();
    TextFieldControl textFieldControl6 = new TextFieldControl();
    TextFieldControl textFieldControl7 = new TextFieldControl();
    BorderLayout borderLayout2 = new BorderLayout();
    NavigationBar navigationBar1 = new NavigationBar();
    JLabel jLabel1 = new JLabel();
    JLabel jLabel2 = new JLabel();
    JLabel jLabel3 = new JLabel();
    JLabel jLabel4 = new JLabel();
    JLabel jLabel5 = new JLabel();
    JLabel jLabel6 = new JLabel();
    JLabel jLabel7 = new JLabel();
    JLabel jLabel8 = new JLabel();
    GridBagLayout gridBagLayout1 = new GridBagLayout();
    JPanel jPanel4 = new JPanel();
    JTextField textFieldStreet = new JTextField();
    JTextField textFieldCity = new JTextField();
    JTextField textFieldState = new JTextField();
    JTextField textFieldZipcode = new JTextField();
    JLabel jLabel9 = new JLabel();
    JLabel jLabel10 = new JLabel();
    JLabel jLabel11 = new JLabel();
    JLabel jLabel12 = new JLabel();
    GridBagLayout gridBagLayout2 = new GridBagLayout();
    /* The following declarations were made manually
    /* DomainAccess provides a means for getting and setting values of a column object as domain
    DomainAccess da = null;
    /* TAddress is the domain class
    TAddress addr = null;
    /* Declare variables for determining if JTextField values have been changed by user
    String oldVal = null;
    String newVal = null;
    /* The following method is generated by the wizard when the frame was created
    protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSED) {
    System.exit(0);
    public void bfInit () throws Exception {
    /* To add code to be invoked when the user moves from one row to another, get the
    DataItemChangeManager from the RowSetInfo (via RowsetAccess) and add a
    DataItemChangeListener. The specific method we want to use here is rowsetCursorMoved
    which is invoked when the user moves from one row to another; the other methods are
    defined simply because the interface requires them.
    RowsetAccess ra = rowSetInfo1.getRowsetAccess();
    DataItemChangeManager dcm = (DataItemChangeManager)ra;
    dcm.addDataItemChangeListener(new DataItemChangeListener() {
    public void rowsetCursorMoved(RowsetCursorMovedEvent e) {
    rowSetInfo1_rowsetCursorMoved(e);
    public void dataItemAdded(DataItemAddedEvent e) {
    public void dataItemDeleted(DataItemDeletedEvent e) {
    public void dataItemRevoked(DataItemRevokedEvent e) {
    public void dataItemValueChanged(DataItemValueChangedEvent e) {
    /* This method was generated by the designer. See rowSetInfo1.addChangeListener(...) in jbInit
    above.
    void rowSetInfo1_rowsetPopulated(RowSetChangeEvent e) {
    try {
    /* When the rowset is populated, set the JTextField values based on the domain. See
    updateFields() below.
    updateFields();
    catch (Exception ex) {
    System.out.println("Error occurred while retrieving values");
    ex.printStackTrace();
    /* This method was added manually to track row navigation. See dcm.addDataItemChangeListener(...)
    in jbInit above.
    void rowSetInfo1_rowsetCursorMoved(RowsetCursorMovedEvent e) {
    try {
    /* When the user moves from one row to another, set the JTextField values based on the
    domain. See updateFields() below.
    updateFields();
    catch (Exception ex) {
    System.out.println("Error occured while assigning values");
    ex.printStackTrace();
    /* This method finds the values from each field of the column object by using the domain, then
    sets the values of the JTextFields respectively. It is invoked when the rowset is initially
    populated, and each time the user moves from one row to another.
    public void updateFields () throws Exception {
    /* Get DataItem for the Address column object and cast to DomainAccess for to prepare for
    getting and setting column value as domain.
    da = (DomainAccess)AddressrowSetInfo1.getImmediateAccess();
    /* Get the value of the attribute as a Domain and cast to DomainInterface.
    DomainInterface di = da.getValueAsDomain();
    /* null out addr. Otherwise, if the address column is null for a particular record, when
    the user navigates to the record with the null values, addr will retain the previous record's
    values. This ensures a clean slate.
    addr = null;
    /* Using DomainInterface allows us to cast the domain object to the specific Domain class for
    that type. So, cast the address attribute's value to TAddress, the class that
    represents the T_ADDRESS type created in the database. This provides getters and setters
    for each of the fields of the Object Type.
    if ( di instanceof TAddress ) {
    addr = (TAddress) di;
    /* If the above statement resulted in some non-null object assigned to addr, it is because
    one or more of the fields of the domain contained non-null values. Therefore, if addr is
    not null, get the values from each field of the domain and assign them to their
    respective JTextFields. Otherwise, set each JTextField to an empty string.
    if (addr != null) {
    textFieldStreet.setText(addr.getStreet());
    textFieldCity.setText(addr.getCity());
    textFieldState.setText(addr.getState());
    textFieldZipcode.setText(addr.getZipcode());
    else {
    textFieldStreet.setText("");
    textFieldCity.setText("");
    textFieldState.setText("");
    textFieldZipcode.setText("");
    /* If addr is null, after making sure the JTextFields are cleared, create a new TAddress
    object so that we have something to assign values to if the user edits the JTextFields.
    try {
    addr = new TAddress();
    catch (SQLException ex) {
    System.out.println("Error creating domain TAddress");
    ex.printStackTrace();
    /* The method below is invoked when the user navigates to textFieldStreet, textFieldCity,
    textFieldState, or textFieldZipcode. It's used just to find the value of the field when
    the user enters the field (the "before" value).
    void textField_focusGained(FocusEvent e) {
    Object obj = e.getSource();
    if (obj instanceof JTextField) {
    JTextField field = (JTextField)obj;
    oldVal = field.getText();
    /* The method below is invoked when the user navigates away from textFieldStreet, textFieldCity,
    textFieldState, or textFieldZipcode. It checks to see if the user changes the value of the
    field, and if so, updates the value of the address attribute.
    void textField_focusLost(FocusEvent e) {
    /* Find out the value of the JTextField now that the user is attempting to leave the field.
    Object obj = e.getSource();
    if (obj instanceof JTextField) {
    JTextField field = (JTextField)obj;
    newVal = field.getText();
    /* Compare the new value of the field ("after" value) to the "before" value captured
    in textField_focusGained above. If they are equal, we do nothing. If they are not equal,
    then the user must have changes the value in the field, and we have some work to do.
    if (!oldVal.equals(newVal)) {
    /* Since this same method is called regardless of which JTextField has been left, we find
    out which text field the user is leaving, and then set the value of the appropriate
    element of the addr domain.
    if (obj.equals(textFieldStreet)) {
    addr.setStreet(newVal);
    if (obj.equals(textFieldCity)) {
    addr.setCity(newVal);
    if (obj.equals(textFieldState)) {
    addr.setState(newVal);
    if (obj.equals(textFieldZipcode)) {
    addr.setZipcode(newVal);
    /* So, we've set the value of the appropriate element of the addr domain, but we have not
    "posted" those changes to the BC4J (middle-tier), so if we were to commit at this point
    our changes would not get saved to the database (because BC4J is not aware of these
    changes). The next step is to notify BC4J of the changes.
    try {
    da.setValueAsDomain(addr);
    catch (InvalidDataException ex) {
    System.out.println("Invalid Data assigned to TAddress");
    ex.printStackTrace();
    /* Clear out the oldVal and newVal variable so we are ready to track more changes.
    oldVal = null;
    newVal = null;
    }-- Brian

  • How to get the view in editable mode with OCA button.

    Dear Experties,
    I am new to CRM WEB UI ,I have got the requirement to develope a view with OCA button on it and when i click on the button it should direct to the second view  and it should open with edit mode.
    The Source view is table type and target view is form type.
    I am able to achieve this but unable to get it in editable mode.
    I have added the below code in do_prep_output method but getting dump  at the line
    lr_entity ?= me->typed_context->EMAINLEG->collection_wrapper->get_first( ).
    The error message is
    Long text During a 'CAST' operation ('?=' oder 'MOVE ? TO')a type conflict occurred. The source type '\CLASS=CL_BSP_WD_MIXED_NODE' is not compatible for assigning with the target type '\CLASS=CL_CRM_BOL_ENTITY'.
    Please somebody help me on this
    lv_display = me->view_group_context->is_view_in_display_mode( me ).
      IF lv_display EQ abap_false.
      ELSE.
         me->view_group_context->set_view_editable( me ).
      ENDIF.
      DATA:    lr_tx           TYPE REF TO if_bol_transaction_context,
              lr_entity       TYPE REF TO cl_crm_bol_entity,
               lr_comp type REF TO ZL_BT131QI__BSPWDCOMPONEN_IMPL.
      lr_comp ?= me->comp_controller.
      Check lr_comp is BOUND.
      lr_entity ?= lr_comp->typed_context->BTADMINI->collection_wrapper->get_current( ).
      CHECK lr_entity IS BOUND.
      IF lr_entity->lock( ) = abap_true.
        me->view_group_context->set_view_editable( me ).
      ENDIF.
      lr_entity ?= me->typed_context->EMAINLEG->collection_wrapper->get_first( ).
      WHILE lr_entity IS BOUND.
        lr_entity->lock( ).
        lr_entity ?= me->typed_context->EMAINLEG->collection_wrapper->get_next( ).
      ENDWHILE.
    The following error text was processed in the system:
    Source type \CLASS=CL_BSP_WD_MIXED_NODE is not compatible, for the purposes of assignment, with target type \CLASS=CL_CRM_BOL_ENTITY
    Exception Class CX_SY_MOVE_CAST_ERROR
    Error Name MOVE_CAST_ERROR
    Program ZL_ZBT131QI_EMAINLEG_IMPL=====CP
    Include ZL_ZBT131QI_EMAINLEG_IMPL=====CM00C
    ABAP Class ZL_ZBT131QI_EMAINLEG_IMPL
    Method EH_ON_EDIT
    Line 33 
    Long text During a 'CAST' operation ('?=' oder 'MOVE ? TO')a type conflict occurred. The source type '\CLASS=CL_BSP_WD_MIXED_NODE' is not compatible for assigning with the target type '\CLASS=CL_CRM_BOL_ENTITY'.
    Thanks in advance!!!

    Hi,
    in CRM a context can consist of model nodes,  value nodes and, unfortunately, mixed nodes. While mixed nodes implement the same interface as model nodes they can't be casted into a CL_CRM_BOL_ENTITY directly. Instead you need to perform the following conversion in order to get the model node from the mixed node:
    DATA:  mixed_node     TYPE REF TO cl_bsp_wd_mixed_node,
               entity              TYPE REF TO cl_crm_bol_entity.
    mixed_node = me->typed_context->EMAINLEG->collection_wrapper->get_first( ).
    entity = ?= mixed_node->if_bsp_wd_ext_property_access~get_model_node( ).
    Best,
    Christian

  • How to get the view name by passing the window name from table

    Hi All,
    would like to knew about the standard table from which we want to "retrieve the VIEW name by passing WINDOW name"
    as we have standard tables like WDY_WINDOW, WDY_VIEW,WDY_APPLICATION but our ZComponent details
    are not updated in this WDY_WINDOW table.
    Is there any other table exists on the above condition
    Regards
    Jaipal.E

    Hello friend,
    There are many structure names started with WDY_WB_VC*where the details of the windows and views are stored just search those structures and see where its getting the tables in run time so that you can get the source tables.
    I think this will be useful for you.
    Thanks,
    Sri Hari

  • How to get the node's coordinates when Node is in a managed container

    I worked thru the documentation of "BoundsInParent and BoundsInLocal" but these values do not seem to be resonable when the Node is within a managed container
    e.g. when the node is placed in a HBox or BorderPane.
    How can I estimate the y-coordinate of this node (relative to the scene) ?

    Have you tried Node's "localToScene" method?

  • How to get the values inputted by the user in Classification view of  MM02

    Hello,
    Does anyone know how to get the inputted values in Classification view of MM02/MM01? I tried to use CLAF_CLASSIFICATION_OF_OBJECTS but this gets the values that is currently saved in the tables and not the values that the user recently inputted in the screen.
    Regards,
    Alfred

    hi
    try this...
    How to Display the Batch Characteristics in BOM?

  • How to get the script of a table or view in SQL Developer?

    Dear friends/expert,
    Could you tell me how to get the script for a view or a table easily in SQL Developer like pressing F4 in TOAD?
    I found that I can press SHIFT+F4 for a view in SQL Developer and get the script of the view in Details Tab. But how to move the script to SQL worksheet to edit? It is very easy to do in TOAD.
    And I didn't find a way to get the script for a table till now. Is there any way to do that?
    Thanks in advance.
    Best regards,
    Ning

    1. Although the team might put a lot of effort in keeping track on the forum, a lot of posts still go by without answer.
    2. If you have an enhancement request, log it at the announced SQL Developer Exchange, so others can vote to add weight on the issue. Be clear and detailed in the explanation.
    3. Given the structure of the application, I guess it won't be easy (maybe impossible) to add the functionality you are asking. Do you have a suggestion on how to access the info?
    4. If your request gets accepted, still another year or two may go by until the functionality gets added. For sure you'll be better off writing a user defined extension or report (querying DBMS_METADATA.GET_DDL).
    Hope that helps,
    K.
    Edited by: -K- on 12/01/2009 09:37

  • How to get standard view or table for the standard inforsource

    Hi all:
          According to business reqirement, we are going to use standard inforsource 0CO_OM_CCA_10,
    we need to know the standard view or table in order to corresponding DataSource?
    could you please tell me how to get  the standard view or table or DataSource?
    Couldn't thank you more!

    Hi Sony,
    Goto RSA1>BI content installation>goto objects>double click on the Infosource>then a pop-up comes search for that infosource-->select it and click on transfer
    Before that in the right side of the tab select the grouping as "Before and afterwards of the dataflow" and collection as automatic.
    then you get all the datasource/cubes and all the object related to the infosource.
    OR another option is-->
    Goto RSA6 in the R/3 and search for the datasource with the name "0CO_OM_CCA_10" (don't forget to expand all the tree structure in RSA6)
    then goto that datasource and double click on the datasource then you will get the Extract structure of that datasource.
    double click on the extract structure then you may get the View name also.
    hope this helps...
    Regards,
    Ravi Kanth

  • How to get the coordinate of a cell in the jtable?

    How to get the coordinate of a cell in the jtable?
    How to get the point of a cell in the jtable?
    Thanks for help!

    getCellRect(...);

  • I-photo:  I used 2 cameras to take pictures on a trip --- i have put the pictures from both cameras into an album --- when i click on view and then sort by date, the pictures do not sort by date --- any ideas on how to get the pics sorted by date?

    I-photo:  I used 2 cameras to take pictures on a trip --- i have put the pictures from both cameras into an album --- when i click on view and then sort by date, the pictures do not sort by date --- any ideas on how to get the pics sorted by date?

    Select all the photos that you need to change, then click the "Photos" menu and choose "Adjust Date and Time".
    If you add a year, it will adjust all the photos that you selected by adding a year (so if you accidentally select one of the photos that already has "2012", that will change to "2013"). 

  • HOW TO GET THE SELECTED VALUE IN A ROW FROM ONE VIEW TO ANOTHER VIEW?

    hi all,
    I  have a small issue.
    i have created two views.In the table of the first view i'm selecting a row and pressing the button it will move to next view.
    i am adding some fields manually in the table of the second view and pressing the save button.Here all the values should get updated corresponding to the field which i have selected in the first view.
    I want to know how to get the particular field in the selected row from one view to another view.
    Kindly help me.

    Hi,
            Any data sharing accross views can be achiveved by defining CONTEXT data in COMPONENT CONTROLLER and mapping it to the CONTEXT of all the views. Follow the below steps.
    1. Define a CONTEXT NODE in component controller
    2. Define same CONTEXT NODE in all the views where this has to be accessed & changed.
    3. Go to CONTEXT NODE of each view, right click on the node and choose DEFINE MAPPING.
    This is how you map CONTEXT NODE and same can be accessed/changed from any VIEW or even from COMPONENT CONTROLLER. Any change happens at one VIEW will be automatically available in others.
    Check the below link for more info regarding same.
    [http://help.sap.com/saphelp_nw04s/helpdata/EN/48/444941db42f423e10000000a155106/content.htm]
    Regards,
    Manne.

Maybe you are looking for