Detailed comments

I've gone through the EAD spec. and I've come up with a detailed list of comments that I'd like to post here and also will post over at TheServerSide.com and send directly to the JSR group. This area will give the community a chance to discuss this more. There are a few things that I did not finish commenting on, but over-all this document is fairly complete with my comments thus far. But then again, I've only read the spec twice and spent a day considering it.
I'll continue to add to this thread as I think of more.
Brian Pontarelli
Included document
JSF 2.1
Assuming that most applications will be setup like:
HTML->HTTP->FacesServlet->reconstitute phase->validation phase->model phase
This leads to an enormous amount of duplication as well as overhead. The information for each form component will be stored in the HttpServletRequest, expanded into the UIComponent Tree and stored in the FacesContext and finally migrated to the Application�s Model. Although this seems to be a small amount of work when considering smaller forms with two or three fields, it could become larger with 20-30 field forms. This continues to grow when considering an intensive web application with many users (i.e. 20+ requests per minute). In addition, the cost of the UIComponent and Application�s Model classes themselves might further increase the amount of memory consumed by this triple duplication as they may contain other member variables that increase each instances foot-print. In addition, without some comparison mechanism, the HttpSerlvetRequest parameters will be copied to the UIComponents local values, which will be copied to the Application�s Model each request. If, for example, the request goes all the way to the Invoke Application phase and then encounters an error, which will redirect the user back to the form so that they can fix some values, after they have fixed the values and resubmitted, the triple transfer happens, in its entirety, again (unless the application program is exceptionally savvy and is willing to build in an update recognition component that could skip application model updates when they are not needed).
The simpler and more concise design seems to be a single duplication of data. This would be from the HttpServletRequest to the Application�s Model. This would remove the UIComponent�s local values entirely. The UIComponent tree could still be constructed and optimized however the JSF spec allows. Likewise, the UIComponent�s themselves could be �backed� by the Application�s Model classes as is the case in the MVC design of Java�s Swing APIs.
The decoding process would work the same but would store the decoded information in the Application�s Model. Likewise, the encoding would retrieve it from the Application�s Model. This mimics other frameworks such as Jakarta Struts with their ActionForm classes that are essentially the Application�s Model (or at least positioned in such a way that they could be).
JSF 2.3
This has been tried many times and shown to be lacking. Server-side event models do not scale well because of the overhead of marshalling and unmarshalling the entire HttpServletRequest including all the form parameters, so that a single checkbox can change the values in a single selectbox (for example). The only solution to this problem seems to be the use of contained transmission systems, which transmit only the needed components state to the server. The server can respond with updates to any component, or whatever it needs. In order to attempt to accomplish this in a web browser, some very extensive JavaScript needs to be written which can cause enormous amounts of support issues. I think that you�ll find very little need for RequestEventHandlers and find that nearly 98%+ of the work will be done in the ApplicationEventHandlers.
JSF 2.6
This needs to be rewritten. This contains information about the Lifecycle management process before the reader knows what that is.
JSF 2.7
I don�t really like the concept of 1 Tree to 1 page yet, but I don�t know why. Need to think about this and draw some concrete conclusions about how this is lacking and what impacts it will have.
How will applications be able to forward to HTML pages? It doesn�t seem possible in the current setup without creating Tree objects for pages that don�t contain JSF code. Likewise, it seems that the requirement of having response Trees dictate the outbound page require that every JSP page in the entire application use JSF code (in order to seem conceptually correct). This seems like a large requirement for businesses with existing info-structure. Not to mention the need to be redirected out of the J2EE application server to an ASP server. Of course no one wants that, but it is a reality. This seems very restricting. The flow should be flexible enough to support forwards and redirects to any resource inside and outside the container.
JSF 2.8
The requirement on forcing the Tree to be saved to the response or the session seems very restricting. This section is very ambiguous about what writing the Tree to the response means. Does this mean doing nothing because the JSF tags will do everything for you? Or does it mean adding additional information to the HTML about the state of the JSF system? In the latter case, this is simply duplication of the information that the JSF tags write out, is it not? And there might be implementations with large Trees and many users that do not want to bug down the session with this information and would rather spend the computing cycles to reconstruct it each time from the request. Additionally, would there be cases where a developer would want to send the information from a normal HTML page to the JSF system and have it construct a UIComponent Tree? This seems likely and not possible (?) with the requirement from this section.
If you decide to leave in the local values and model values that I disagreed with above, you�ll need to be specific about where the values for the response come from when encode is called. It they come from the local values of the UIComponent, then the application logic will need to be responsible for migrating the values from the Application�s Model to the UIComponent�s local values. If they come from the Application�s Model, then every component will need to supply model references (I think). Or a better solution to this problem would be to add another phase to the lifecycle called �Update Local Values� which is designed to update the UIComponent�s local values from the Application�s Model if necessary. Or you could simply do away with the UIComponent�s local values altogether in favor of a more MVC oriented system where the view is directly backed by the Application�s Model (similar to Swing).
JSF 3.1.2
You probably want to add a way to determine a components individual and absolute id (bar and /foo/bar). This will be useful in tools as well as debugging.
JSF 3.1.5-3.1.6
See above about my issues with model references and local values. What if I write a JavaScript Tree component? This would mean that UIComponent�s local value would be of type com.foo.util.Btree (or something) and my Application�s Model might be the same. There is a lot of overhead doing things this way. What if my tree stores the groups and all the employees for a company with 50,000 people and 500 groups (not the best way to do things, but possible)? What if the Tree is roughly 1K in size (Java object size) and 2000 users are banging away at the system all day? Let�s see that�s 1K for the UIComponent�s local value, 1K for the Application�s Model, 2000 users, and roughly 4 Megs consistent memory usage for a single component.
JSF 3.5.x
This was a major concern to me when I wrote both of my frameworks. A reusable Validator is excellent because it reduces the amount of code duplication. However, it is very difficult to tailor messages for specific UIComponents using a reusable Vaildator. For example, on one page I just a text box for age and on another I use if for income. I don�t want my error messages to be generic stating that, �This value must be greater than 0 and less than X�. I want the user to know what must be within the range.
One solution is to use the name of the input in the error message. This forces the user to name inputs in human readable form, which might not be possible. For example, I have an input for monthly overhead and I name it monthlyOverhead so that it is a legal variable name. You can�t have a message that reads, �monthlyOverhead must be greater than 0�. This just won�t fly in a production environment. It needs to be nice and human readable and say, �Your monthly overhead must be greater than zero.� However, you can�t name your UIComponent �Your monthly overhead� especially I you intend to do JavaScript on the page. Besides, it�s just bad style.
Another solution is requiring specific sub-classes for each message required, or some parameter from the page to denote the specific message to use. The former clutters up the packages with tons of Validators and also requires way too much coding. The latter completely negates the ability to use parameterized messages without further bogging down the page with all the (un-localized) parameters to the error message or forces the placing of all the parameters inside the resource bundle for the error messages with a standard naming scheme (i.e. for the first parameter to the message �longRange.montlyOverhead.0=Your monthly overhead�). Since 1/3 of any application is really the view and interaction of which a large chunk is error messages, this is a major issue that must be considered. Because it always happens that the CEO plays around with the application one day and says, �I really wish this error message read this �� and then you�re in for some major headaches, unless this problem is solved up front.
JSF 3.5.2.x and 4.x and 7.6.x
These sections seem to break up the flow of reading. The previous sections were charging forward with information about the interfaces, the JSF classes and specifics about what is required for each Phase. Then we need to down shift quite a bit to talk about default/standard implementations that ship with JSF or are required to be implemented by implementers. I think that these should be contained in a later section after 5, 6, 7 and 8.
JSF 5.1.2
What are the implications of this decision on Internationalization? When different UIComponents encode using different Locales and the HttpServletResponse�s content type has already been set, there could be rendering problems on the client side in the browser.
JSF 5.1.5
Messages added to the message queue during validation or processing contain Unicode String Objects and could be written in any language. The Message Object does not contain information about the Locale that the message needs to be converted to and this is needed for internationalization. If I have a multi-lingual portal and output error messages in multiple languages, the spec needs to really consider what and where the charset for the HTTP header is going to be set. What if JSF realizes it needs to use UTF-8 but another tag library an application is using assumes fr_FR, who is correct and what will happen? How will JSF determine what encoding to use when it has Messages in ten different languages? What if the container starts writing the output to the stream before the header is set? Etc. etc.
JSF 8.1
This is possibly the most confusing and poorly written section in the entire document. This uses terms that don�t relate to anything, old class names and un-described tables. This needs to be re-written in a more concise way. I did not understand what a custom action was until I reached section 8.2.6 and realized that an action was really a tag implementation. Action is a poor choice of words because not all tags equate to actions. What is the action of an input tag? I understand action when talking about for-loop tags, but not input tags.
JSF 8.3
This seems quite contradictory to section JSF 2.8 because it leads the reader to believe that they have no control over the implementation of the use_faces tag and the method of saving the JSF state. That is UNTIL they read section 8.5. These two sections need to be combined to clarify the document.
Comments:
I think that JSF is a very good idea in general and that it is a very complicated thing to define (due mostly to the use of HTTP, which is a stateless protocol). There are so many frameworks out there and each has its own benefits and downfalls. However, it is imperative that this specification attempt to solve as many problems as possible and not introduce any more. The spec must be flexible enough to support implementations that drive for speed and those that drive for flexibility. It must also support enormous amounts of flexibility internally because as vendors attempt to comply with it, they want to make as few changes to their own code base as possible.
Right now, JSF has not accomplished these goals. I think that it needs to consider a lot more than it has and really needs to address the more complex issues.

Brian,
I've gone through the EAD spec. and I've come up with
a detailed list of comments that I'd like to post here
and also will post over at TheServerSide.com and send
directly to the JSR group. Thanks for the feedback, it's really appreciated. I've included some comments below. Even though I'm a member of the spec group, these are just my personal comments and do not represent any official position of the group. It's very important that you send feedback you want the spec group to consider to the mail address listed in the spec draft. Some of us read this forum, and try to answer questions and clarify things as best we can, but the only way to make sure the feedback is considered is to send it to the JSR-127 mail address.
Included document
JSF 2.1
Assuming that most applications will be setup like:
HTML->HTTP->FacesServlet->reconstitute
phase->validation phase->model phase
This leads to an enormous amount of duplication as
well as overhead. The information for each form
component will be stored in the HttpServletRequest,
expanded into the UIComponent Tree and stored in the
FacesContext and finally migrated to the Application�s
Model. [...]This is not so bad as it may seem, since typically it's not copies of the information that get stored in multiple places, just references to the same object that represents the information.
Consider a simple text field component that is associated with a model object. The text value arrives with the request to the server which creates a String object to hold it. The UI component that represents the text saves a reference to the same String object and eventually updates the model's reference to point to the same String object. The application back-end eventually gets a reference to the value from the model and, say, saves it in a database. Not until you hit the database do you need to make a copy of the bytes (in the database, not in the JVM).
JSF 2.3
This has been tried many times and shown to be
lacking. Server-side event models do not scale well
because of the overhead of marshalling and
unmarshalling the entire HttpServletRequest including
all the form parameters, so that a single checkbox can
change the values in a single selectbox (for example).
The only solution to this problem seems to be the use
of contained transmission systems, which transmit only
the needed components state to the server. The server
can respond with updates to any component, or whatever
it needs. In order to attempt to accomplish this in a
web browser, some very extensive JavaScript needs to
be written which can cause enormous amounts of support
issues. I think that you�ll find very little need for
RequestEventHandlers and find that nearly 98%+ of the
work will be done in the ApplicationEventHandlers.I agree with you that a web app can never be as responsive as a thick-client app unless client-side code (JavaScript) is used. Web apps must be designed with this in mind, which can be a challenge in itself.
But there are still advantages with an event-based model, namely that it provides a higher abstraction layer than coding directly to the HTTP request data. And even in a web app, having stateful components that generate events simplifies the UI development. As an example, say you have a large set of rows from a database query you want to display a few rows at a time. A stateful component bound to this query result can take care of all the details involved, rendering Next/Previous buttons as needed. Clicking on one of the buttons fires an event that the component itself can handle to adjust the display to the selected row subset.
Coding the logic for this over and over in each application that needs it (as you need to do without access to powerful components like this) is error prone and boring ;-)
Finally, JSF components can be smart and generate client-side code as well to provide a more responsive user interface.
JSF 2.6
This needs to be rewritten. This contains information
about the Lifecycle management process before the
reader knows what that is.Many parts of the draft needs to be rewritten; it's still a work in progress.
JSF 2.7
I don�t really like the concept of 1 Tree to 1 page
yet, but I don�t know why. Need to think about this
and draw some concrete conclusions about how this is
lacking and what impacts it will have.I have the same concerns, and think we need to take a close look at how a response can be composed from multiple JSF Trees, or a combination of regular JSP pages and JSF Trees, etc. I know others in the spec group agree that this is a vague area that needs more attention.
How will applications be able to forward to HTML
pages? It doesn�t seem possible in the current setup
without creating Tree objects for pages that don�t
contain JSF code. Likewise, it seems that the
requirement of having response Trees dictate the
outbound page require that every JSP page in the
entire application use JSF code (in order to seem
conceptually correct). [...]I don't think this is a problem. The application can decide to redirect (or forward) to any resource it wants when it processes an application event; it doesn't have to generate a new JSF response. But yes, navigation is also an area that needs attention in general.
JSF 2.8
The requirement on forcing the Tree to be saved to the
response or the session seems very restricting. This
section is very ambiguous about what writing the Tree
to the response means. [...]It is, isn't it ;-) Again, this is an area that still needs work, and I believe we must be able to provide a lot of flexibility here. Depending on the type of components in the Tree, the size of the Tree, the number of concurrent users and size of the application, etc. different approaches will be needed. How much data must be saved is also dependent on the type of component.
Additionally, would there be cases where a developer
would want to send the information from a normal HTML
page to the JSF system and have it construct a
UIComponent Tree? This seems likely and not possible
(?) with the requirement from this section.In that case the request initiated from the HTML page would be directed directly to application code (a servlet, maybe) which would create an appropriate JSF component Tree and generate a response from it.
If you decide to leave in the local values and model
values that I disagreed with above, you�ll need to be
specific about where the values for the response come
from when encode is called. It they come from the
local values of the UIComponent, then the application
logic will need to be responsible for migrating the
values from the Application�s Model to the
UIComponent�s local values. If they come from the
Application�s Model, then every component will need to
supply model references (I think). [...]I think this is pretty clear in the current EA draft. First, a model is optional for the basic component types (while more complex things, like a DataGrid, may require it). The draft says (in 3.16): "For components that are associated with an object in the model data of an application (that is, components with a non-null model reference expression in the modelReference property), the currentValue() method is used to retrieve the local value if there is one, or to retrieve the underlying model object if there is no local value. If there is no model reference expression, currentValue() returns the local value if any; otherwise it returns null."
Other parts of the spec (can't find it now) deals with how the local value is set and reset. The effect for the normal case is that if there's a non-null model reference, its value is used, otherwise the local value is used. In special cases, a local value can be set to explicitly ignore the model value.
JSF 3.5.x
This was a major concern to me when I wrote both of my
frameworks. A reusable Validator is excellent because
it reduces the amount of code duplication. However, it
is very difficult to tailor messages for specific
UIComponents using a reusable Vaildator. For example,
on one page I just a text box for age and on another I
use if for income. I don�t want my error messages to
be generic stating that, �This value must be greater
than 0 and less than X�. I want the user to know what
must be within the range. [...]I agree that this is a concern. In addition to the solutions you have suggested, I think a way to solve it is by letting validators fire "invalid value" events of different types. These events would contain a default message but also getter method for the interesting parts (e.g. the invalid value, the start and the stop value for an "invalid range" event). An event handler can use the getter methods for the individual values and build a message that's appropriate for the application,
JSF 5.1.2
What are the implications of this decision on
Internationalization? [...]
JSF 5.1.5
Messages added to the message queue during validation
or processing contain Unicode String Objects and could
be written in any language. The Message Object does
not contain information about the Locale that the
message needs to be converted to and this is needed
for internationalization. [...]I need to read up on the latest i18n proposals, but in general I think you're right that there's more work to do in this area.
JSF 8.1
This is possibly the most confusing and poorly written
section in the entire document. This uses terms that
don�t relate to anything, old class names and
un-described tables. [...]The whole JSP layer is still immature, but IMHO, we need to get the API right before we address the JSP issues.
I did not understand what a custom
action was until I reached section 8.2.6 and realized
that an action was really a tag implementation. Action
is a poor choice of words because not all tags equate
to actions. What is the action of an input tag? I
understand action when talking about for-loop tags,
but not input tags. [...]Actually, "action" is the proper name defined by the JSP specification for what's described in this section. A "JSP action" is represented by an "XML element" in a page, which in turn consists of a "start tag", a "body" and an "end tag", or just an "empty tag".
Comments:
I think that JSF is a very good idea in general and
that it is a very complicated thing to define (due
mostly to the use of HTTP, which is a stateless
protocol). There are so many frameworks out there and
each has its own benefits and downfalls. However, it
is imperative that this specification attempt to solve
as many problems as possible and not introduce any
more. The spec must be flexible enough to support
implementations that drive for speed and those that
drive for flexibility. It must also support enormous
amounts of flexibility internally because as vendors
attempt to comply with it, they want to make as few
changes to their own code base as possible.
Right now, JSF has not accomplished these goals. I
think that it needs to consider a lot more than it has
and really needs to address the more complex issues.I agree, and thank you for the feedback. There are many holes yet to be filled and many details to nail down. All of this takes time, since you must build support for the spec among a large number of vendors and other market groups, as well as among developers; this is one of the most important goals for any specification.

Similar Messages

  • Migrating Supporting Details/Comments

    We recently created a new Hyperion environment by copying our production environment. After that, we created a new dimension for our use going forward. We realized that all supporting details and comments were missing. It makes sense because the details and comments are pointing at specific intersections of data in the SQL database. I've written the SQL to add a default member from the new dim to all the supp details/comments and that fixes the majority of the problem by linking the details to the correct intersections. When I go back into a Planning form and drill down, i can now see the supporting details and comments. However, the form's cells are not turning blue, which is the visual cue that there are underlying details. Does anybody know how these cells get the blue shading that represents underlying details?
    Here's my SQL that adds the default new dim member to my underlying details:
    UPDATE HSP_COLUMN_DETAIL
    SET DIM9 = '233295' --DIM9 is the new Dim and 233295 is the object code of the new dim's default member
    WHERE DIM9 = ''
    Thanks-
    Cameron

    Planning uses a caching system so if you make changes directly to the tables (which is not supported) then planning will not always be aware of the changes, if the tables updates are valid then usually a restart of the planning web app will pick up the changes.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Import JPG Properties Details into Photoshop

    I have thousands of jpg photos that have the photograph's description documented in the jpg properties - details - comments field (right click the jpg file and select properties, then details, then comments). How do now edit / view these jpg properties within Photshop Elements 9?

    It should see them on a simple "sync" of the folder in Lightroom. Perhaps you still have "Treat JPEG files next to raw files as separate photos" unchecked in your preferences (the general tab).
    Also, it is far simpler to simply export directly to JPEG from the PSD files in Lightroom. It will do all those things (flattening, shrinking, sharpening, etc.) for you in one step

  • Exporting iPhoto comments

    I'm (still) using iPhoto 6 and wish to export my detailed comments with my photos.
    I tried Old Toads suggestion, but it would not work for me:
    http://discussions.apple.com/thread.jspa?messageID=4276855&#4276855
    I would update to iPhoto 7 tomorrow if it would solve the problem. (I read that 7 has negative issues too, although I've forgotten which).
    Alternatively, perhaps there is another inexpensive tool that might help? I have a batch of photos to export initially and then smaller numbers on a regular basis. The only alternative for the recipient of the photos would be that I change each file name manually to included the comments. (A lot of work which I wish to avoid at all costs).
    Any suggestions please?

    If you want the metadata to be written to the image file itself then you'll need to upgrade to iPhoto 7. But don't judge iPhoto 7 entirely by what you read here. It's like judging the general population of a city by those you see in a hospital's emergency room.
    However, you can, on a one time basis (actually a 20 day demo window), use iView MediaPro to write the title, keyword and comments to the original files by following the first part of Tutorial #1.
    TIP: For insurance against the iPhoto database corruption that many users have experienced I recommend making a backup copy of the Library6.iPhoto (iPhoto.Library for iPhoto 5 and earlier) database file and keep it current. If problems crop up where iPhoto suddenly can't see any photos or thinks there are no photos in the library, replacing the working Library6.iPhoto file with the backup will often get the library back. By keeping it current I mean backup after each import and/or any serious editing or work on books, slideshows, calendars, cards, etc. That insures that if a problem pops up and you do need to replace the database file, you'll retain all those efforts. It doesn't take long to make the backup and it's good insurance.
    I've created an Automator workflow application (requires Tiger), iPhoto dB File Backup, that will copy the selected Library6.iPhoto file from your iPhoto Library folder to the Pictures folder, replacing any previous version of it. It's compatible with iPhoto 6 and 7 libraries and Tiger and Leopard. iPhoto does not have to be closed to run the application, just idle. You can download it at Toad's Cellar. Be sure to read the Read Me pdf file.

  • 2007A: Comments on GetDICompany method

    According to the help center:
    <i>"When running several DI add-ons performance may degrades significantly, because each additional connection to the DI API loads a new DI and ObServer DLLs.
    You can improve performance using a new connection interface to DI API. This method is recommended when running multiple DI add-ons connected to the same Company database.
    You must handle shut down events properly, otherwise add-on process remains in memory"</i>
    I'd like to ask SDK Architects two simple questions before i test it by myself:
    <b>1</b>. Wll GetLastError, GetNewObjectCode and other process-specific methods work properly? Imagine you have 2 addons and 2 connections returned by GetDICompany as well. What will be the result of GetNewObjectCode method executed by 2nd addon: will it be the the code of the latest object added by 2nd addon's DI connection or will it be the code of the latest object added by 'joined' processes of 1st and 2nd addons?
    <b>2</b>. Should we keep in mind anything while coding the shut-down events?
    These questions are the cause and effect of the lack of GetDICompany-mechanism's descriptions and comments. Detailed comments on its core are appreciate.
    Regards,
    Alexey

    Hi Alexey,
    Re 1. Of course that should work per Add-On!
    ...I just double-checked it with GetNewObjectCode - to have seen it myself before replying ;-)!
    Re 2. I am not aware of anything you should keep in mind so far...; we'll double-check with R&D and let you know in case there is something!
    Thank you very much for raising this!
    Regards,
    Frank

  • How to set up database for form application in app. server 10g r2

    Hi Friends and Bgrant.
    I get user compiled fmb file.
    I did not find componant in app. server.
    However, I can see form server ment with 3 subitem : form compiler, formmigration and run form on the web.
    The form application is supported by database. Other person already configured server for application .
    I put a URL in URL field in run form on the web. I can see install ed successfully! Oracle application Server. Forme server. Oracle application server 10g. title: welcome oracle application server
    after clicked OK button, the page is grey blank without any inforamtion to be displayed. No error message. status bottome as done. the page title as Oracle application server form server.
    SO I think that i need to creade a datasource in app. server.
    But I do not know how to fill field.
    I can log into database from SQL*plus in server PC.
    In datasource page in app. server: i copy a default ORCALEDS information
    with new ID and password. it does not work
    hereData Source Class:
    JDBC URL :
    JDBC Driver:
    Location
    Transactional(XA) Location      
    EJB Location
    Thanks for any help!!
    jim

    Thanks for help!
    I fixed issue of database connection with new issue.
    Only display first form setting (first URL) for 4 different URL
    URL:
    http://salerpt.com/forms/frmservlet?config=emis-srmenu
    fmx file Location as C:\OraMid\forms\salerpt-Forms fmx name as srmenu.fmx in same directory
    fmb file location as C:\OraMid\forms\salerpt-Forms_source fmx name as srmenu.fmb in same directory
    # Single Sign-On OID configuration parameter
    oracle_home=C:\OraMid
    in formweb.cfg file
    baseHTMLjinitiator=basejini.htm
    workingDirector : workingDirectory= blank. but C:\OraMid\forms\salerpt-Forms right now
    # Forms runtime argument: which form module to run
    ##form=test.fmx
    ## i moved bottom section of form section in here and before
    line as Forms runtime argument: database connection details
    comment two line
    #jinit_exename=jinit.exe
    #jinit_mimetype=application/x-jinit-applet;version=1.3.1.22
    I create 4 sections as
    form=srmenu.fmx
    width=1200
    height=700
    pageTitle=Sale Information System (SIS)
    form=xxxx
    net 3 form setting
    However it only display one form interface that i put in( 4 different URL. only display first URL)
    It seems that one formsweb.cfg, it doesn not support multip form application.
    I have 4 small forms application with 4 URL for one formsweb.cfg.
    What should I need to do?
    I am waiting for your help!
    JIm
    Edited by: user589812 on Nov 24, 2008 1:49 PM

  • Cursor in arrange window won't move when track is playing

    Hi,
    Can anyone help with this problem I'm having with Logic? I've been away from making tracks for a few weeks and now that I'm trying to use logic again I'm finding that cursor is not moving when I play a track, both in a new session and in old sessions. I am able to move the cursor by double clicking on the bottom part of the ruler but it doesn't scroll as it should during play. Is this a bug and do I need to reinstall logic or did I inadvertently set something to the wrong setting?
    thanks a lot for your help,
    Mike
    p.s. I am running logic 7.1 on an IMac G5

    The function you probably want is called Catch. Check out:
    Logic Pro > Preferences > Global
    There's a tab there (called Catch) that allows you to turn Catch off and on - check out the manual for detailed comments on the three options available.
    Also, on the Arrange Window there's a button in the top left corner - looks like a person walking. If that's grey, the Catch function is turned off. If blue, the Catch function will operate.
    Pete

  • Nvidia 8800 GT not the best for Aperture use?

    I've been reading from barefeats ( http://barefeats.com/harper10.html ) that the 8800 GT is not the best graphics card for Aperture. Actually I don't think they actually tested Aperture, but Motion 3. The Nvidia is a more expensive option than the ATIs, yet it would be worse for Aperture? Has someone specifically benchmarked Aperture 2 (not another pro app, and no synthetic tests of core image) with the 8800 GT against the other cards? Would Apple update Aperture to make it take better advantage of the 8800 GT's strengths (when available in a system)? I hope so. I already got the Nvidia, and am waiting to get a Mac Pro in the summer.

    Here's my prelim findings (as posted in another thread). Will come back with more detailed comments after I have a chance to test some more:
    Re: nvidia 8800GT in 1st generation MacPro
    Posted: 25-Apr-2008 13:08 in response to: Dale Strumpell
    Reply Email
    I've just put one in my first gen mac pro, too. I can confirm a great deal of improvement over the stock 7300 gt. My prob was when an image had been straightened, cropped etc if I then attempted edge sharpening it was just awful - beachballs in abundance, crappy panning, slower than Capture NX. Now, though, it is fast and pleasant to use. That's the good news. The bad news is either:
    1. Apple put such a puny graphics card in a Mac Pro (sic) in the first place (although it copes with everything except its own Pro photo software)
    2. Apple wrote such idiosyncratic software (leaning on the on-graphics card memory so much) that meant Mac Pro (sic) machines hardly more than a year old couldn't cope without a new graphics card when running Apple's own pro photo software. That and the 7300 is still on the "recommended" list of cards for running Aperture 2.
    Ho and, indeed, hum.
    Cheers
    D

  • Restoring iPhoto from Time Machine. However iPhoto albums are not transfer

    iPhoto albums are not transferring. I just have a bunch of photos with no albums/details/comments etc. I have done a few searches in support and have found similar problems but nothing like mine, which seems to be that I have a back up of all my photos in Time Machine but when I open Time Machine, I cannot simply select a previous restore date as I have been able to with everything else so far. I have tried dragging the whole iPhoto Library folder to iPhoto but again, end up with thousands of pictures with no albums... Any suggestions? Thanks.
    It seems iPhoto is backed up but does not have several backups in Time Machine.
    Using iPhoto '06
    Message was edited by: BrMendez

    I think you may need to post this one on the Time Machine forum.
    http://discussions.apple.com/forum.jspa?forumID=1227
    In later versions you can restore +to the iPhoto Library+, but as v6 predates Time Machine it's not possible to do that. Hence you need to restore an entire Library and open it.
    Regards
    TD

  • Premiere Elements 9 with Panasonic GH1 & G13

    The title is to help Google!
    First hiccup, the Adobe ID entry box won't work unless your Adobe ID is an email address.  Mine isn't.  Fortunately you can skip that stage.
    Choose "New Project" and the program crashes... ah, I see it's trying to read my VST's.  Bad design - that should be enabled if the user wants to later on.  Fortunately most of mine are where PE9 won't find them.
    There's a promising set of presets (though as before, the PE requirement to choose precise presets is not found in other such programs, but that's probably buried too deep in the software to change).
    Drag a Panasonic GH1 1080i clip onto the timeline, and it wants to change the preset I chose, so I click "yes".  And it plays, which is something.  Now I drag a 720p clip onto the timeline, and it displays a red line above the clip on the timescale, and only shows the watermark (which oddly does not appear in the 1080i clip playback).  When I hit "enter" to render that portion, it still just displays the watermark.  Ah, click on the window and the video is displayed under the watermark.  But the video will not play without going back to the watermark only display.
    Going from earlier posts, I have now to decide whether to ignore the claim that this is a fully functional demo and pay to make it fully functional, or wonder forever how well it might have worked if I'd bought it.
    Aha again - I delete everything so far, and drag the 720p clip on its own onto the timeline.  The project preset is automatically changed again (after confirmation), and it plays fine with no watermark.  Good!  Put the 1080i clip afterwards, and that gets the watermark treatment.
    Let's try rendering the present state of the timeline to H264 1080i - off it goes, at a render speed a bit less than half speed (2 minutes of material in 4 minutes on the Q6300 quad core PC) which in comparison with programs seems slow, especially with all cores going flat out.  Does this program support Cuda?   No sign of it at a glance.
    Completed render plays back fine and (apart from the watermark) looks perfectly OK in picture quality and resolution terms.
    A minor annoyance which might not apply to anyone else - here I have two PCs using a shared keyboard and mouse using "Maxivista" to swap the mouse and keyboard to whichever screen the mouse is on.  When I go to the PC not running PE9, playback stops.
    Well, if only to make my earlier investment in PE8 worthwhile, I'll go for it and I'll add more detailed comments once the program is really fully functional...  then I'll test whether G13 footage (Panasonic GH1 footage using non-standard firmware, giving much higher than standard bitrates) works or not.

    Well, before plonking down my money I've tried a couple of "GH13" 1080i clips, which have bitrates outside the official AVCHD spec (eg around 35mbps in this case) and they play fine too.
    I notice that when I click on "full screen" at the top of the interface that the playback then has artifacts which are caused by the timeline refreshing under the full screen playback - a bar across the screen which comes from elsewhere in the picture being played.  Anyone else see that?  That's with standard AVCHD or mpeg footage.  Just possibly the kind of thing which checking for current NVIDIA drivers might fix?
    As soon as I try to put a picture in picture with AVCHD material, the playback framerate drops drastically - that part of the timeline has to be rendered.  In other recent software that's not required - off the top of my head I'd get four tracks to play at once.  I'd say PE9 is well behind the game in terms of the efficiency of the timeline playback engine.  Even rendering that part of the timeline is painfully slow.  Still, maybe there are quality tradeoffs - one program I use doesn't attempt to give full definition playback from the timeline, leading to a slighly blurred look in the playback monitoring window, but that does mean it can show more complex timelines unrendered.

  • JDeveloper, ADF, lack of support and bleak future

    Hi,
    I'm a seasoned Java and .NET developer, used to many environments and frameworks. A happy user of Oracle databases.
    For a very Oracle oriented client I started with a team of developer a project using JDeveloper (no choice). After 4 months of using JDeveloper, ADF to build web sites, here are some thoughts I would like to share. This remarks only focus on that products, because I have a lot of respect for the Oracle databases and had a lot of success with them.
    I am starting to get depressed about the very few blogs (most from Oracle) talking about JDeveloper and ADF, the lack of books, and the Oracle forums.
    Moreover, most of the time you never get an answer to your problems, sometimes untested not working 'solutions', and a very very few times a working solution. Help is sparse, the community is missing.
    If Oracle wants to promote its framework, it has to boost the number of tutorials, examples and support.
    Googling about ADF is most of the time a non sense since you always land on the same 3 blogs and the Oracle forums.
    Proof of non use by the community ?
    If you try on www.indeed.com to find statistics about JDeveloper or ADF jobs you get another frightening proof.
    Sometimes you find a piece of code or a tutorial that may help, but you realize it works only on some specific release of JDeveloper.
    What makes me angry is when you ask why your code works on the x.x.x.x version but not the newest version, and the only answer you get is stay with x.x.x.x version (I won't bother to fix your 10 lines or code or even give you a direction to do it (maybe coz I don't understand myself were the breaking changes are)).
    JDeveloper is damn too slow ? You should have a dual-core and at least 2 Go of memory, you poor thing ! Is Java for rich people ?
    Debuging is a nightmare. Compared to Eclipse or others it is not practical at all.
    I'm happy when I can create a few pages drag and dropping controls. Business components are also a good thing. It speeds up my development. But since development is not just UI and generating business components, I lose a lot of time every time I want to write code, every time I do something "exotic" it becomes a pain in the ass.
    My problem here is that the architecture and JDeveloper constraint the developer a lot. I don't even talk about the fact that everything is only Oracle database oriented (openess ?). Even changing your page layout is a pain. Positioning controls is non trivial. As a whole, I would say that this whole thing imposes you to adapt to it, it doesn't adapt to you and your way of working.
    Most results I saw look like the Oracle websites.
    I could go on about the various bugs and problems that plague JDeveloper. Like the refactoring (when usable) that leave old and annoying stuff in your model XML, like the bugs in the diagrams, like problems related to auto-binding on the page and manually changing controls ID, various synchronization problems between pages and backing beans, adding upload is a mess, OrdDomain types are buggy, regions doesn't work well in the designer, and so on...
    My point is that I feel the whole thing is not mature. And Oracle seems to fix some issues with the release of JHeadStart. Sometimes you fix things by integrating JHeadStart stuff. JHeadStart is probably a great thing and a time saver if you don't do too much "exotic" screens and code, but does it means that JDeveloper+ADF and classic development becomes a second class citizen ?
    This is sad, since the ADF framework and JDeveloper look good and are worth of a more widespread usage. But marketing and support are way way far behind other commercial and open-source solutions. When I see what is planned for JDeveloper 11 and I compare it to others (Java or not). When I look at the developers needs and expectations, I feel we are losing the race.
    Maybe Oracle would like to hand over some of the framework to the community, but my feeling is that the community is already commited on other exciting and less constraining frameworks and tool, and this community may well work in a way that doesn't fit Oracle vision. Future will tell.
    Cheers.

    Hi,
    thanks for the detailed comment. I appreciate the time you spent writing this up as this helps to improve the product. Below is a first - quick and brief response to some of your statements.
    ... for documentation and tutorials
    http://www.oracle.com/technology/products/adf/learnadf.html
    Especially the ADF Developer Guide for 4 GL developers earns a lot of praise among J2EE developers.
    http://download.oracle.com/docs/html/B25947_01/toc.htm
    ... for books
    http://www.oracle.com/technology/tech/java/jsf.html
    Sometimes you find a piece of code or a tutorial that may help, but you realize it works only on some specific release of JDeveloper. What makes me angry is when you ask why your code works on the x.x.x.x version but not the newest version, and the only answer you get is stay with x.x.x.x version
    Of course samples need to be created to some point in time with a specific version. We have SRDemo as our main - maintained - reference demo I suggest you download this sample from OTN using help--> check for updates. Note that SRDemo contains code solutions for most developer cases and also is available in 10.1.3.1
    I'm happy when I can create a few pages drag and dropping controls. Business components are also a good thing. It speeds up my development. But since development is not just UI and generating business components, I lose a lot of time every time I want to write code, every time I do something "exotic" it becomes a pain in the ***.
    What is exotic, and what are the questions you didn't get an answer for ? I see that this is your first posting on OTN, so I am wondering under which account you posted the other questions that did not get an answer.
    Googling about ADF is most of the time a non sense since you always land on the same 3 blogs and the Oracle forums. Proof of non use by the community ?
    Isn't OTN a community ? I don't think that we need another discussion forum and looking at OTN it appears very active.
    I don't even talk about the fact that everything is only Oracle database oriented (openess ?).
    Not true. Please prove your claim.
    Even changing your page layout is a pain. Positioning controls is non trivial. As a whole, I would say that this whole thing imposes you to adapt to it, it doesn't adapt to you and your way of working. Most results I saw look like the Oracle websites.
    Now you are barking up the wrong tree, blaming ADF for what is JavaServer Faces layouting. You don't have to use JSF but can go for JSP /Struts and/or Swing development. What is the view layer technology of your choice that allows you to do better layouting ?
    I could go on about the various bugs and problems that plague JDeveloper
    Yes, please post them all
    ... regions doesn't work well in the designer, and so on...
    Of course, because regions are not officially supported. JDeveloper 11 - I know you don't want to hear future - will have full templating (going far beyound of what facelets do) and region support
    My point is that I feel the whole thing is not mature. And Oracle seems to fix some issues with the release of JHeadStart.
    JHeadstart is a consulting offering and not meant to fix the product.
    ... but does it means that JDeveloper+ADF and classic development becomes a second class citizen ?
    No comment for this statement as it is based on a wrong observation
    This is sad, since the ADF framework and JDeveloper look good and are worth of a more widespread usage. But marketing and support are way way far behind other commercial and open-source solutions. When I see what is planned for JDeveloper 11 and I compare it to others (Java or not).
    Note that only a fraction of new features in JDeveloper 11 leaked out so far or have been mentioned in the recent statement of direction. JDeveloper has many more features that we don't yet promote because the software isn't available.
    Please note that we give ADF to the community. Its just we are not giving it to the open soutce community but the J2EE community (JSR-227)
    Frank

  • Interface between Legacy and SAP for Equipment Master

    Hello
    I got a requirement where I need to develop a interface between legacy system and R/3 system for Equipment Master Data update in R/3. I am thinking of getting a Idoc file from Legacy and then update the changes or any new creation of Equipments in R/3. I found a standard BAPI for this BAPI_EQUIPMENT_CREATE/CHANGE. This BAPI use a strcture BAPI_ITOB for data record of IDoc. But I got more data from legacy except what we have in BAPI_ITOB. I got Partner Data, Classification data also for Equipments. I am thinking of copying the BAPI to a Z function module and modify the Idoc structure , message type and all to capture all the data and then do a update in same way as standard transaction IE01(Equipment Create) is doing in Batch Input. Do you think if there is any better way of doing this? I am not used to transaction BAPI . just wondering if we Can use that in someway to include our modification?
    Thanks
    Harkamal

    20,000 is on quite higher side for IDOC.
    IBIP help doc says it needs 2 Kbyte for each record, i.e. 40 Mb for 20,000 rec. that should be ok. Since it has structures for Partner & classification data , I don't think u need to modify the BAPI.
    Transaction IE01 - Create equipment
    Transaction IE02 - Change equipment
    Structure - IBIPEQUI Equipment record
                     |->    IBIPNSTA     New status profile if necessary
                     |->>   IBIPSTAT     User status records
                     |->>   IBIPDOCU     Doc. from Doc. management system
                     |->>   IBIPPART     Partner details (comment below)
                     |-->>  IBIPTEXT     (see comment below)
                              for long text:          TEXT_MARK = " " empty
                              for internal comment:   TEXT_MARK = "1"
                     |-->>  IBIPCLAS    Classification record (eqpmt class)
                         |-->> IBIPFEAT     Classification characteristics,
                                               ie. features for the class
                     |-->>  IBIPBDCD     see below (from screen 102)

  • DW CS4 Horizontal Spry drop down menu not displaying correctly in Internet Explorer 8

    Hi,
    I have created a horizontal Spry drop down menu in Dreamweaver CS4 with my own background images. I have done various modifications to the CSS script to accommodate the style and feel needed; including making the main buttons' height twice the size of the sub menu buttons and some alignments. It seems to work different depending which browser is used.
    It works well in Google Chrome.
    It works well in Firefox with the exception that if any of the buttons are clicked, thereafter a thin black line is diplayed horizontally across center of the top main buttons when the mouse rolls over them. I would like to correct this but is not nearly as bad as the problem I'm having in Internet Explorer 8.
    Here is my biggest concern and I would greatly appreciate if anyone can shed some light on this matter.
    Once opened in Internet Explorer 8 the main navigation buttons appear as they should. IE8 prompts me the following: "To help protect your security, Internet Explorer has restricted this webpage from running scripts or ActiveX controls that could access your computer. Click here for options..". Once I allow IE8 to run scripts or ActiveX controls, the background image disappears and only shows on any menu or submenu button when the mouse rolls over that particular button. Can someone please help.
    The menu can be seen at work by clicking on this link:
    www.bargainxchange.com/BXC Main Navigation Spry Drop Menu.html
    Below are all the scrips involved.
    Here is the CSS script named "SpryMenuBarHorizontal4.css" in use :
    /* SpryMenuBarHorizontal.css - version 0.6 - Spry Pre-Release 1.6.1 */
    /* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */
    LAYOUT INFORMATION: describes box model, positioning, z-order
    /* The outermost container of the Menu Bar, an auto width box with no margin or padding */
    ul.MenuBarHorizontal
        margin: 10;
        padding: 0;
        list-style-type: none;
        font-size: 80%;
        cursor: default;
        width: auto;
        font-family: Arial, Helvetica, sans-serif;
        font-weight: bold;
        text-align: center;
        /*whole menu moves*/
        margin-left: 100px;
    /* Set the active Menu Bar with this class, currently setting z-index to accomodate IE rendering bug: http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html */
    ul.MenuBarActive
        z-index: 1000;
    /* My Note --Top buttons' background, height and font size adjust-- */
    /* Menu item containers, position children relative to this container and are a fixed width */
    ul.MenuBarHorizontal li
        /* My note --I added the height and background-image as Main-Buttons.jpg-- */
        height: 55px;   
        background-image: url(../Main-Buttons.jpg);
        margin: -2;
        padding: 0;
        list-style-type: none;
        font-size: 100%;
        position: center;
        /*text-align: left;*/
        cursor: pointer;
        width: 99px;
        float: left;
    /* My note --Submenu font size adjust-- */
    /* Submenus should appear below their parent (top: 0) with a higher z-index, but they are initially off the left side of the screen (-1000em) */
    ul.MenuBarHorizontal ul
        /*height:38px;*/
        margin: 0;
        padding: 0;
        list-style-type: none;
        font-size: 87%;
        z-index: 1020;
        cursor: default;
        width: 160px;
        position: absolute;
        left: -1000em;
    /* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to auto so it comes onto the screen below its parent menu item */
    ul.MenuBarHorizontal ul.MenuBarSubmenuVisible
        /* My note --this margin alligns the drop buttons up and down-- */
        margin-top: 24px;
        height: 25px;   
        left: auto;
    /* My note --drop menu size adjustments-- */
    /* Menu item containers are same fixed width as parent */
    ul.MenuBarHorizontal ul li
        height: 25px;
        width: 160px;
    /* Submenus should appear slightly overlapping to the right (95%) and up (-5%) */
    ul.MenuBarHorizontal ul ul
        position:absolute;
        margin: -5% 0 0 95%;
    /* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to 0 so it comes onto the screen */
    ul.MenuBarHorizontal ul.MenuBarSubmenuVisible ul.MenuBarSubmenuVisible
        left: auto;
        top: 0;
    DESIGN INFORMATION: describes color scheme, borders, fonts
    /* Submenu containers have borders on all sides */
    ul.MenuBarHorizontal ul
        /*border: 1px solid #CCC;*/
    /* My note --Text Allignment global-- */
    /* Menu items are a light gray block with padding and no text decoration */
    ul.MenuBarHorizontal a
        /*height: 40px;*/
        text-align: center;
        /*vertical-align: center;*/
        display: block;
        cursor: pointer;
        padding: 0.5em 0.75em;
        text-decoration: none;
        /*zzzzzzzz Text Color*/
        color: #333;        /*background-color: #CCC;*/
        letter-spacing: -0.00px;
        margin-left: 1px;   
        margin-right: 0px;
        /*alligns text up or down globally*/
        margin-top: 1px;
    /* Menu items that have mouse over or focus have a blue background and white text */
    ul.MenuBarHorizontal a:hover, ul.MenuBarHorizontal a:focus
        /*background-color: #33C;
        color: #FFF;*/
    /* Menu items that are open with submenus are set to MenuBarItemHover with a blue background and white text */
    ul.MenuBarHorizontal a.MenuBarItemHover, ul.MenuBarHorizontal a.MenuBarItemSubmenuHover, ul.MenuBarHorizontal a.MenuBarSubmenuVisible
        background-image: url(../Main-Buttons-mouse-over.jpg);    /*background-color: #33C;
        color: #FFF;*/
    SUBMENU INDICATION: styles if there is a submenu under a given menu item
    /* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */
    ul.MenuBarHorizontal a.MenuBarItemSubmenu
        background-repeat: no-repeat;
        background-position: 95% 50%;
    /* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */
    ul.MenuBarHorizontal ul a.MenuBarItemSubmenu
        background-repeat: no-repeat;
        background-position: 95% 50%;
    /* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */
    ul.MenuBarHorizontal a.MenuBarItemSubmenuHover
        background-repeat: no-repeat;
        background-position: 95% 50%;
    /* My note --mouse over-- */
    /* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */
    ul.MenuBarHorizontal ul a.MenuBarItemSubmenuHover
        background-repeat: no-repeat;
        background-position: 95% 50%;
    BROWSER HACKS: the hacks below should not be changed unless you are an expert
    /* HACK FOR IE: to make sure the sub menus show above form controls, we underlay each submenu with an iframe */
    ul.MenuBarHorizontal iframe
        position: absolute;
        z-index: 1010;
        filter:alpha(opacity:0.1);
    /* HACK FOR IE: to stabilize appearance of menu items; the slash in float is to keep IE 5.0 from parsing */
    @media screen, projection
        ul.MenuBarHorizontal li.MenuBarItemIE
            display: inline;
            f&#92;loat: left;
            background: #FFF;
    Here is the JavaScrip file named "SpryMenuBar.js" that has not been modified in any way:
    // SpryMenuBar.js - version 0.12 - Spry Pre-Release 1.6.1
    // Copyright (c) 2006. Adobe Systems Incorporated.
    // All rights reserved.
    // Redistribution and use in source and binary forms, with or without
    // modification, are permitted provided that the following conditions are met:
    //   * Redistributions of source code must retain the above copyright notice,
    //     this list of conditions and the following disclaimer.
    //   * Redistributions in binary form must reproduce the above copyright notice,
    //     this list of conditions and the following disclaimer in the documentation
    //     and/or other materials provided with the distribution.
    //   * Neither the name of Adobe Systems Incorporated nor the names of its
    //     contributors may be used to endorse or promote products derived from this
    //     software without specific prior written permission.
    // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    // POSSIBILITY OF SUCH DAMAGE.
    SpryMenuBar.js
    This file handles the JavaScript for Spry Menu Bar.  You should have no need
    to edit this file.  Some highlights of the MenuBar object is that timers are
    used to keep submenus from showing up until the user has hovered over the parent
    menu item for some time, as well as a timer for when they leave a submenu to keep
    showing that submenu until the timer fires.
    var Spry; if (!Spry) Spry = {}; if (!Spry.Widget) Spry.Widget = {};
    Spry.BrowserSniff = function()
        var b = navigator.appName.toString();
        var up = navigator.platform.toString();
        var ua = navigator.userAgent.toString();
        this.mozilla = this.ie = this.opera = this.safari = false;
        var re_opera = /Opera.([0-9&#92;.]*)/i;
        var re_msie = /MSIE.([0-9&#92;.]*)/i;
        var re_gecko = /gecko/i;
        var re_safari = /(applewebkit|safari)&#92;/([&#92;d&#92;.]*)/i;
        var r = false;
        if ( (r = ua.match(re_opera))) {
            this.opera = true;
            this.version = parseFloat(r[1]);
        } else if ( (r = ua.match(re_msie))) {
            this.ie = true;
            this.version = parseFloat(r[1]);
        } else if ( (r = ua.match(re_safari))) {
            this.safari = true;
            this.version = parseFloat(r[2]);
        } else if (ua.match(re_gecko)) {
            var re_gecko_version = /rv:&#92;s*([0-9&#92;.]+)/i;
            r = ua.match(re_gecko_version);
            this.mozilla = true;
            this.version = parseFloat(r[1]);
        this.windows = this.mac = this.linux = false;
        this.Platform = ua.match(/windows/i) ? "windows" :
                        (ua.match(/linux/i) ? "linux" :
                        (ua.match(/mac/i) ? "mac" :
                        ua.match(/unix/i)? "unix" : "unknown"));
        this[this.Platform] = true;
        this.v = this.version;
        if (this.safari &amp;&amp; this.mac &amp;&amp; this.mozilla) {
            this.mozilla = false;
    Spry.is = new Spry.BrowserSniff();
    // Constructor for Menu Bar
    // element should be an ID of an unordered list (&lt;ul&gt; tag)
    // preloadImage1 and preloadImage2 are images for the rollover state of a menu
    Spry.Widget.MenuBar = function(element, opts)
        this.init(element, opts);
    Spry.Widget.MenuBar.prototype.init = function(element, opts)
        this.element = this.getElement(element);
        // represents the current (sub)menu we are operating on
        this.currMenu = null;
        this.showDelay = 250;
        this.hideDelay = 600;
        if(typeof document.getElementById == 'undefined' || (navigator.vendor == 'Apple Computer, Inc.' &amp;&amp; typeof window.XMLHttpRequest == 'undefined') || (Spry.is.ie &amp;&amp; typeof document.uniqueID == 'undefined'))
            // bail on older unsupported browsers
            return;
        // Fix IE6 CSS images flicker
        if (Spry.is.ie &amp;&amp; Spry.is.version &lt; 7){
            try {
                document.execCommand("BackgroundImageCache", false, true);
            } catch(err) {}
        this.upKeyCode = Spry.Widget.MenuBar.KEY_UP;
        this.downKeyCode = Spry.Widget.MenuBar.KEY_DOWN;
        this.leftKeyCode = Spry.Widget.MenuBar.KEY_LEFT;
        this.rightKeyCode = Spry.Widget.MenuBar.KEY_RIGHT;
        this.escKeyCode = Spry.Widget.MenuBar.KEY_ESC;
        this.hoverClass = 'MenuBarItemHover';
        this.subHoverClass = 'MenuBarItemSubmenuHover';
        this.subVisibleClass ='MenuBarSubmenuVisible';
        this.hasSubClass = 'MenuBarItemSubmenu';
        this.activeClass = 'MenuBarActive';
        this.isieClass = 'MenuBarItemIE';
        this.verticalClass = 'MenuBarVertical';
        this.horizontalClass = 'MenuBarHorizontal';
        this.enableKeyboardNavigation = true;
        this.hasFocus = false;
        // load hover images now
        if(opts)
            for(var k in opts)
                if (typeof this[k] == 'undefined')
                    var rollover = new Image;
                    rollover.src = opts[k];
            Spry.Widget.MenuBar.setOptions(this, opts);
        // safari doesn't support tabindex
        if (Spry.is.safari)
            this.enableKeyboardNavigation = false;
        if(this.element)
            this.currMenu = this.element;
            var items = this.element.getElementsByTagName('li');
            for(var i=0; i&lt;items.length; i++)
                if (i &gt; 0 &amp;&amp; this.enableKeyboardNavigation)
                    items[i].getElementsByTagName('a')[0].tabIndex='-1';
                this.initialize(items[i], element);
                if(Spry.is.ie)
                    this.addClassName(items[i], this.isieClass);
                    items[i].style.position = "static";
            if (this.enableKeyboardNavigation)
                var self = this;
                this.addEventListener(document, 'keydown', function(e){self.keyDown(e); }, false);
            if(Spry.is.ie)
                if(this.hasClassName(this.element, this.verticalClass))
                    this.element.style.position = "relative";
                var linkitems = this.element.getElementsByTagName('a');
                for(var i=0; i&lt;linkitems.length; i++)
                    linkitems[i].style.position = "relative";
    Spry.Widget.MenuBar.KEY_ESC = 27;
    Spry.Widget.MenuBar.KEY_UP = 38;
    Spry.Widget.MenuBar.KEY_DOWN = 40;
    Spry.Widget.MenuBar.KEY_LEFT = 37;
    Spry.Widget.MenuBar.KEY_RIGHT = 39;
    Spry.Widget.MenuBar.prototype.getElement = function(ele)
        if (ele &amp;&amp; typeof ele == "string")
            return document.getElementById(ele);
        return ele;
    Spry.Widget.MenuBar.prototype.hasClassName = function(ele, className)
        if (!ele || !className || !ele.className || ele.className.search(new RegExp("&#92;&#92;b" + className + "&#92;&#92;b")) == -1)
            return false;
        return true;
    Spry.Widget.MenuBar.prototype.addClassName = function(ele, className)
        if (!ele || !className || this.hasClassName(ele, className))
            return;
        ele.className += (ele.className ? " " : "") + className;
    Spry.Widget.MenuBar.prototype.removeClassName = function(ele, className)
        if (!ele || !className || !this.hasClassName(ele, className))
            return;
        ele.className = ele.className.replace(new RegExp("&#92;&#92;s*&#92;&#92;b" + className + "&#92;&#92;b", "g"), "");
    // addEventListener for Menu Bar
    // attach an event to a tag without creating obtrusive HTML code
    Spry.Widget.MenuBar.prototype.addEventListener = function(element, eventType, handler, capture)
        try
            if (element.addEventListener)
                element.addEventListener(eventType, handler, capture);
            else if (element.attachEvent)
                element.attachEvent('on' + eventType, handler);
        catch (e) {}
    // createIframeLayer for Menu Bar
    // creates an IFRAME underneath a menu so that it will show above form controls and ActiveX
    Spry.Widget.MenuBar.prototype.createIframeLayer = function(menu)
        var layer = document.createElement('iframe');
        layer.tabIndex = '-1';
        layer.src = 'javascript:""';
        layer.frameBorder = '0';
        layer.scrolling = 'no';
        menu.parentNode.appendChild(layer);
        layer.style.left = menu.offsetLeft + 'px';
        layer.style.top = menu.offsetTop + 'px';
        layer.style.width = menu.offsetWidth + 'px';
        layer.style.height = menu.offsetHeight + 'px';
    // removeIframeLayer for Menu Bar
    // removes an IFRAME underneath a menu to reveal any form controls and ActiveX
    Spry.Widget.MenuBar.prototype.removeIframeLayer =  function(menu)
        var layers = ((menu == this.element) ? menu : menu.parentNode).getElementsByTagName('iframe');
        while(layers.length &gt; 0)
            layers[0].parentNode.removeChild(layers[0]);
    // clearMenus for Menu Bar
    // root is the top level unordered list (&lt;ul&gt; tag)
    Spry.Widget.MenuBar.prototype.clearMenus = function(root)
        var menus = root.getElementsByTagName('ul');
        for(var i=0; i&lt;menus.length; i++)
            this.hideSubmenu(menus[i]);
        this.removeClassName(this.element, this.activeClass);
    // bubbledTextEvent for Menu Bar
    // identify bubbled up text events in Safari so we can ignore them
    Spry.Widget.MenuBar.prototype.bubbledTextEvent = function()
        return Spry.is.safari &amp;&amp; (event.target == event.relatedTarget.parentNode || (event.eventPhase == 3 &amp;&amp; event.target.parentNode == event.relatedTarget));
    // showSubmenu for Menu Bar
    // set the proper CSS class on this menu to show it
    Spry.Widget.MenuBar.prototype.showSubmenu = function(menu)
        if(this.currMenu)
            this.clearMenus(this.currMenu);
            this.currMenu = null;
        if(menu)
            this.addClassName(menu, this.subVisibleClass);
            if(typeof document.all != 'undefined' &amp;&amp; !Spry.is.opera &amp;&amp; navigator.vendor != 'KDE')
                if(!this.hasClassName(this.element, this.horizontalClass) || menu.parentNode.parentNode != this.element)
                    menu.style.top = menu.parentNode.offsetTop + 'px';
            if(Spry.is.ie &amp;&amp; Spry.is.version &lt; 7)
                this.createIframeLayer(menu);
        this.addClassName(this.element, this.activeClass);
    // hideSubmenu for Menu Bar
    // remove the proper CSS class on this menu to hide it
    Spry.Widget.MenuBar.prototype.hideSubmenu = function(menu)
        if(menu)
            this.removeClassName(menu, this.subVisibleClass);
            if(typeof document.all != 'undefined' &amp;&amp; !Spry.is.opera &amp;&amp; navigator.vendor != 'KDE')
                menu.style.top = '';
                menu.style.left = '';
            if(Spry.is.ie &amp;&amp; Spry.is.version &lt; 7)
                this.removeIframeLayer(menu);
    // initialize for Menu Bar
    // create event listeners for the Menu Bar widget so we can properly
    // show and hide submenus
    Spry.Widget.MenuBar.prototype.initialize = function(listitem, element)
        var opentime, closetime;
        var link = listitem.getElementsByTagName('a')[0];
        var submenus = listitem.getElementsByTagName('ul');
        var menu = (submenus.length &gt; 0 ? submenus[0] : null);
        if(menu)
            this.addClassName(link, this.hasSubClass);
        if(!Spry.is.ie)
            // define a simple function that comes standard in IE to determine
            // if a node is within another node
            listitem.contains = function(testNode)
                // this refers to the list item
                if(testNode == null)
                    return false;
                if(testNode == this)
                    return true;
                else
                    return this.contains(testNode.parentNode);
        // need to save this for scope further down
        var self = this;
        this.addEventListener(listitem, 'mouseover', function(e){self.mouseOver(listitem, e);}, false);
        this.addEventListener(listitem, 'mouseout', function(e){if (self.enableKeyboardNavigation) self.clearSelection(); self.mouseOut(listitem, e);}, false);
        if (this.enableKeyboardNavigation)
            this.addEventListener(link, 'blur', function(e){self.onBlur(listitem);}, false);
            this.addEventListener(link, 'focus', function(e){self.keyFocus(listitem, e);}, false);
    Spry.Widget.MenuBar.prototype.keyFocus = function (listitem, e)
        this.lastOpen = listitem.getElementsByTagName('a')[0];
        this.addClassName(this.lastOpen, listitem.getElementsByTagName('ul').length &gt; 0 ? this.subHoverClass : this.hoverClass);
        this.hasFocus = true;
    Spry.Widget.MenuBar.prototype.onBlur = function (listitem)
        this.clearSelection(listitem);
    Spry.Widget.MenuBar.prototype.clearSelection = function(el){
        //search any intersection with the current open element
        if (!this.lastOpen)
            return;
        if (el)
            el = el.getElementsByTagName('a')[0];
            // check children
            var item = this.lastOpen;
            while (item != this.element)
                var tmp = el;
                while (tmp != this.element)
                    if (tmp == item)
                        return;
                    try{
                        tmp = tmp.parentNode;
                    }catch(err){break;}
                item = item.parentNode;
        var item = this.lastOpen;
        while (item != this.element)
            this.hideSubmenu(item.parentNode);
            var link = item.getElementsByTagName('a')[0];
            this.removeClassName(link, this.hoverClass);
            this.removeClassName(link, this.subHoverClass);
            item = item.parentNode;
        this.lastOpen = false;
    Spry.Widget.MenuBar.prototype.keyDown = function (e)
        if (!this.hasFocus)
            return;
        if (!this.lastOpen)
            this.hasFocus = false;
            return;
        var e = e|| event;
        var listitem = this.lastOpen.parentNode;
        var link = this.lastOpen;
        var submenus = listitem.getElementsByTagName('ul');
        var menu = (submenus.length &gt; 0 ? submenus[0] : null);
        var hasSubMenu = (menu) ? true : false;
        var opts = [listitem, menu, null, this.getSibling(listitem, 'previousSibling'), this.getSibling(listitem, 'nextSibling')];
        if (!opts[3])
            opts[2] = (listitem.parentNode.parentNode.nodeName.toLowerCase() == 'li')?listitem.parentNode.parentNode:null;
        var found = 0;
        switch (e.keyCode){
            case this.upKeyCode:
                found = this.getElementForKey(opts, 'y', 1);
                break;
            case this.downKeyCode:
                found = this.getElementForKey(opts, 'y', -1);
                break;
            case this.leftKeyCode:
                found = this.getElementForKey(opts, 'x', 1);
                break;
            case this.rightKeyCode:
                found = this.getElementForKey(opts, 'x', -1);
                break;
            case this.escKeyCode:
            case 9:
                this.clearSelection();
                this.hasFocus = false;
            default: return;
        switch (found)
            case 0: return;
            case 1:
                //subopts
                this.mouseOver(listitem, e);
                break;
            case 2:
                //parent
                this.mouseOut(opts[2], e);
                break;
            case 3:
            case 4:
                // left - right
                this.removeClassName(link, hasSubMenu ? this.subHoverClass : this.hoverClass);
                break;
        var link = opts[found].getElementsByTagName('a')[0];
        if (opts[found].nodeName.toLowerCase() == 'ul')
            opts[found] = opts[found].getElementsByTagName('li')[0];
        this.addClassName(link, opts[found].getElementsByTagName('ul').length &gt; 0 ? this.subHoverClass : this.hoverClass);
        this.lastOpen = link;
        opts[found].getElementsByTagName('a')[0].focus();
            //stop further event handling by the browser
        return Spry.Widget.MenuBar.stopPropagation(e);
    Spry.Widget.MenuBar.prototype.mouseOver = function (listitem, e)
        var link = listitem.getElementsByTagName('a')[0];
        var submenus = listitem.getElementsByTagName('ul');
        var menu = (submenus.length &gt; 0 ? submenus[0] : null);
        var hasSubMenu = (menu) ? true : false;
        if (this.enableKeyboardNavigation)
            this.clearSelection(listitem);
        if(this.bubbledTextEvent())
            // ignore bubbled text events
            return;
        if (listitem.closetime)
            clearTimeout(listitem.closetime);
        if(this.currMenu == listitem)
            this.currMenu = null;
        // move the focus too
        if (this.hasFocus)
            link.focus();
        // show menu highlighting
        this.addClassName(link, hasSubMenu ? this.subHoverClass : this.hoverClass);
        this.lastOpen = link;
        if(menu &amp;&amp; !this.hasClassName(menu, this.subHoverClass))
            var self = this;
            listitem.opentime = window.setTimeout(function(){self.showSubmenu(menu);}, this.showDelay);
    Spry.Widget.MenuBar.prototype.mouseOut = function (listitem, e)
        var link = listitem.getElementsByTagName('a')[0];
        var submenus = listitem.getElementsByTagName('ul');
        var menu = (submenus.length &gt; 0 ? submenus[0] : null);
        var hasSubMenu = (menu) ? true : false;
        if(this.bubbledTextEvent())
            // ignore bubbled text events
            return;
        var related = (typeof e.relatedTarget != 'undefined' ? e.relatedTarget : e.toElement);
        if(!listitem.contains(related))
            if (listitem.opentime)
                clearTimeout(listitem.opentime);
            this.currMenu = listitem;
            // remove menu highlighting
            this.removeClassName(link, hasSubMenu ? this.subHoverClass : this.hoverClass);
            if(menu)
                var self = this;
                listitem.closetime = window.setTimeout(function(){self.hideSubmenu(menu);}, this.hideDelay);
            if (this.hasFocus)
                link.blur();
    Spry.Widget.MenuBar.prototype.getSibling = function(element, sibling)
        var child = element[sibling];
        while (child &amp;&amp; child.nodeName.toLowerCase() !='li')
            child = child[sibling];
        return child;
    Spry.Widget.MenuBar.prototype.getElementForKey = function(els, prop, dir)
        var found = 0;
        var rect = Spry.Widget.MenuBar.getPosition;
        var ref = rect(els[found]);
        var hideSubmenu = false;
        //make the subelement visible to compute the position
        if (els[1] &amp;&amp; !this.hasClassName(els[1], this.MenuBarSubmenuVisible))
            els[1].style.visibility = 'hidden';
            this.showSubmenu(els[1]);
            hideSubmenu = true;
        var isVert = this.hasClassName(this.element, this.verticalClass);
        var hasParent = els[0].parentNode.parentNode.nodeName.toLowerCase() == 'li' ? true : false;
        for (var i = 1; i &lt; els.length; i++){
            //when navigating on the y axis in vertical menus, ignore children and parents
            if(prop=='y' &amp;&amp; isVert &amp;&amp; (i==1 || i==2))
                continue;
            //when navigationg on the x axis in the FIRST LEVEL of horizontal menus, ignore children and parents
            if(prop=='x' &amp;&amp; !isVert &amp;&amp; !hasParent &amp;&amp; (i==1 || i==2))
                continue;
            if (els[i])
                var tmp = rect(els[i]);
                if ( (dir * tmp[prop]) &lt; (dir * ref[prop]))
                    ref = tmp;
                    found = i;
        // hide back the submenu
        if (els[1] &amp;&amp; hideSubmenu){
            this.hideSubmenu(els[1]);
            els[1].style.visibility =  '';
        return found;
    Spry.Widget.MenuBar.camelize = function(str)
        if (str.indexOf('-') == -1){
            return str;   
        var oStringList = str.split('-');
        var isFirstEntry = true;
        var camelizedString = '';
        for(var i=0; i &lt; oStringList.length; i++)
            if(oStringList[i].length&gt;0)
                if(isFirstEntry)
                    camelizedString = oStringList[i];
                    isFirstEntry = false;
                else
                    var s = oStringList[i];
                    camelizedString += s.charAt(0).toUpperCase() + s.substring(1);
        return camelizedString;
    Spry.Widget.MenuBar.getStyleProp = function(element, prop)
        var value;
        try
            if (element.style)
                value = element.style[Spry.Widget.MenuBar.camelize(prop)];
            if (!value)
                if (document.defaultView &amp;&amp; document.defaultView.getComputedStyle)
                    var css = document.defaultView.getComputedStyle(element, null);
                    value = css ? css.getPropertyValue(prop) : null;
                else if (element.currentStyle)
                        value = element.currentStyle[Spry.Widget.MenuBar.camelize(prop)];
        catch (e) {}
        return value == 'auto' ? null : value;
    Spry.Widget.MenuBar.getIntProp = function(element, prop)
        var a = parseInt(Spry.Widget.MenuBar.getStyleProp(element, prop),10);
        if (isNaN(a))
            return 0;
        return a;
    Spry.Widget.MenuBar.getPosition = function(el, doc)
        doc = doc || document;
        if (typeof(el) == 'string') {
            el = doc.getElementById(el);
        if (!el) {
            return false;
        if (el.parentNode === null || Spry.Widget.MenuBar.getStyleProp(el, 'display') == 'none') {
            //element must be visible to have a box
            return false;
        var ret = {x:0, y:0};
        var parent = null;
        var box;
        if (el.getBoundingClientRect) { // IE
            box = el.getBoundingClientRect();
            var scrollTop = doc.documentElement.scrollTop || doc.body.scrollTop;
            var scrollLeft = doc.documentElement.scrollLeft || doc.body.scrollLeft;
            ret.x = box.left + scrollLeft;
            ret.y = box.top + scrollTop;
        } else if (doc.getBoxObjectFor) { // gecko
            box = doc.getBoxObjectFor(el);
            ret.x = box.x;
            ret.y = box.y;
        } else { // safari/opera
            ret.x = el.offsetLeft;
            ret.y = el.offsetTop;
            parent = el.offsetParent;
            if (parent != el) {
                while (parent) {
                    ret.x += parent.offsetLeft;
                    ret.y += parent.offsetTop;
                    parent = parent.offsetParent;
            // opera &amp; (safari absolute) incorrectly account for body offsetTop
            if (Spry.is.opera || Spry.is.safari &amp;&amp; Spry.Widget.MenuBar.getStyleProp(el, 'position') == 'absolute')
                ret.y -= doc.body.offsetTop;
        if (el.parentNode)
                parent = el.parentNode;
        else
            parent = null;
        if (parent.nodeName){
            var cas = parent.nodeName.toUpperCase();
            while (parent &amp;&amp; cas != 'BODY' &amp;&amp; cas != 'HTML') {
                cas = parent.nodeName.toUpperCase();
                ret.x -= parent.scrollLeft;
                ret.y -= parent.scrollTop;
                if (parent.parentNode)
                    parent = parent.parentNode;
                else
                    parent = null;
        return ret;
    Spry.Widget.MenuBar.stopPropagation = function(ev)
        if (ev.stopPropagation)
            ev.stopPropagation();
        else
            ev.cancelBubble = true;
        if (ev.preventDefault)
            ev.preventDefault();
        else
            ev.returnValue = false;
    Spry.Widget.MenuBar.setOptions = function(obj, optionsObj, ignoreUndefinedProps)
        if (!optionsObj)
            return;
        for (var optionName in optionsObj)
            if (ignoreUndefinedProps &amp;&amp; optionsObj[optionName] == undefined)
                continue;
            obj[optionName] = optionsObj[optionName];
    And last, here is the HTML code that has also not been modified in any way:
    &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
    &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
    &lt;head&gt;
    &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
    &lt;title&gt;Untitled Document&lt;/title&gt;
    &lt;script src="../BXC Main Navigation Spry Drop Menu/SpryAssets/SpryMenuBar.js" type="text/javascript"&gt;&lt;/script&gt;
    &lt;link href="../BXC Main Navigation Spry Drop Menu/SpryAssets/SpryMenuBarHorizontal4.css" rel="stylesheet" type="text/css" /&gt;
    &lt;/head&gt;
    &lt;body&gt;
    &lt;ul id="MenuBar1" class="MenuBarHorizontal"&gt;
      &lt;li&gt;&lt;a class="MenuBarItemSubmenu" href="#"&gt;Buy&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href="#"&gt;Shop from Private Owner&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Shop Direct from Stores&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Help Buying&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#" class="MenuBarItemSubmenu"&gt;Bid&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href="#"&gt;Shop from Auction&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Help Bidding&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#" class="MenuBarItemSubmenu"&gt;Trade&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href="#"&gt;Shop for Trades&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Help Trading&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a class="MenuBarItemSubmenu" href="#"&gt;List Items&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href="#"&gt;List Items in Auction&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;List Items for Sale&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;List Items for Trade&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Help Listing Items&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#" class="MenuBarItemSubmenu"&gt;Intro&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href="#"&gt;Flash Site &amp;amp; Intro&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;About Us&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#" class="MenuBarItemSubmenu"&gt;My Xchange&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href="#"&gt;Activity&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Account&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Mail&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#"&gt;Contact Us&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href="#" class="MenuBarItemSubmenu"&gt;Help&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href="#"&gt;Main Help&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Site Map&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
    &lt;script type="text/javascript"&gt;
    &lt;!--
    var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"../SpryAssets/SpryMenuBarDownHover.gif", imgRight:"../SpryAssets/SpryMenuBarRightHover.gif"});
    //--&gt;
    &lt;/script&gt;
    &lt;/body&gt;
    &lt;/html&gt;
    Thanks in advance for any of your help.
    Jose H.

    Hello Nancy,
    I was troubleshooting For the next 8 hours after my post here and eventually I got it right, I uploaded the files to the test server and at the time did not have the chance to post the solution here. This is why, as you saw, it is working correctly now.  Both the CSS and HTML files needed modifications. While working on the code I had to run IE8, Chrome and Firefox simultaneously and refresh all three after every change in the code because what would fix the problem in one would cause a problem for the other.
    In addition to the problems listed in my original post, there were also other graphical issues in IE8, such as; the main menu buttons without sub-menus would only display at half their size vertically. The border around the buttons would not display despite that the background images were rendered in Photoshop as flattened JPEGs with boarders as part of the background image. Being so, I removed all borders from the CSS script.
    By the way.. the IE8 security measure did pop up while working from the server.
    Anyhow for those of you who are experiencing similar problems you can take a look at the working code bellow and compare it to the initial code. I've included detail comments on every line I have changed, modified or added.
    Good luck.. as I know it can become a complicated task when creating custom Spry menus.
    <b>Here is the finished CSS script</b>
    <code>@charset "UTF-8";
    /* SpryMenuBarHorizontal.css - version 0.6 - Spry Pre-Release 1.6.1 */
    /* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */
    LAYOUT INFORMATION: describes box model, positioning, z-order
    /* The outermost container of the Menu Bar, an auto width box with no margin or padding */
    ul.MenuBarHorizontal
        margin: 10;
        padding: 0;
        list-style-type: none;
        /* font size for top menu*/
        font-size: 80%;
        cursor: default;
        width: auto;
        font-family: Arial, Helvetica, sans-serif;
        font-weight: bold;
        text-align: center;
        /*whole menu moves*/
        margin-left: 100px;
    /* Set the active Menu Bar with this class, currently setting z-index to accomodate IE rendering bug: http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html */
    ul.MenuBarActive
        z-index: 1000;
    /* My Note --Top buttons' background, height and font size adjust-- */
    /* Menu item containers, position children relative to this container and are a fixed width */
    ul.MenuBarHorizontal li
        /* My note --I added the height and background-image as Main-Buttons.jpg-- */
        height: 55px;   
        background-image: url(../Main-Buttons.jpg);
        margin: -2;
        padding: 0;
        list-style-type: none;
        font-size: 100%;
        position: center;
        /*text-align: left;*/
        cursor: pointer;
        width: 99px;
        float: left;
    /* My note --Submenu font size adjust-- */
    /* Submenus should appear below their parent (top: 0) with a higher z-index, but they are initially off the left side of the screen (-1000em) */
    ul.MenuBarHorizontal ul
        margin: 0;
        padding: 0;
        list-style-type: none;
        font-size: 87%;
        z-index: 1020;
        cursor: default;
        width: 160px;
        position: absolute;
        left: -1000em;
    /* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to auto so it comes onto the screen below its parent menu item */
    ul.MenuBarHorizontal ul.MenuBarSubmenuVisible
        /* My note --this margin alligns the drop buttons up and down-- */
        margin-top: 0px;
        height: 25px;
        left: auto;
    /* My note --drop menu size adjustments-- */
    /* Menu item containers are same fixed width as parent */
    ul.MenuBarHorizontal ul li
        height: 25px;
        width: 162px;
        /* New addition */
    /* Submenus should appear slightly overlapping to the right (95%) and up (-5%) */
    ul.MenuBarHorizontal ul ul
        position:absolute;
        margin: -5% 0 0 95%;
    /* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to 0 so it comes onto the screen */
    ul.MenuBarHorizontal ul.MenuBarSubmenuVisible ul.MenuBarSubmenuVisible
        left: auto;
        top: 0;
    DESIGN INFORMATION: describes color scheme, borders, fonts
    /* Submenu containers have borders on all sides */
    ul.MenuBarHorizontal ul
        /*border: 1px solid #CCC;*/
    /* My note --Text Allignment global-- */
    /* Menu items are a light gray block with padding and no text decoration */
    ul.MenuBarHorizontal a
        /*My note -- took out borders &amp; changed text color to #333(black)&amp; added my own mouse not over image-- */   
        /*border: 0px solid #333332;*/
        background-image: url(../Main-Buttons.jpg);
        /*height: 40px;*/
        text-align: center;   
        display: block;
        cursor: pointer;
        padding: 0.5em 0.75em;
        text-decoration: none;
        /*My note --Text Color-- */
        color: #333;        /*background-color: was #CCC;*/
        letter-spacing: -0.00px;
        margin-left: 1px;   
        margin-right: 0px;
        /*alligns text up or down globally*/
        margin-top: 1px;
    /* Menu items that have mouse over or focus have a blue background and white text */
    ul.MenuBarHorizontal a:hover, ul.MenuBarHorizontal a:focus
        /* My note --took out all backgound &amp; text color for mouse over-- */
        /*background-color: #33C;
        color: #FFF;*/
    /* Menu items that are open with submenus are set to MenuBarItemHover with a blue background and white text */
    ul.MenuBarHorizontal a.MenuBarItemHover, ul.MenuBarHorizontal a.MenuBarItemSubmenuHover, ul.MenuBarHorizontal a.MenuBarSubmenuVisible
        /*My note -- took out background &amp; text &amp; added my own mouse over image-- */
        background-image: url(../Main-Buttons-mouse-over.jpg);
        /*background-color: #33C;
        color: #FFF;*/
    SUBMENU INDICATION: styles if there is a submenu under a given menu item
    /* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */
    ul.MenuBarHorizontal a.MenuBarItemSubmenu
        /* My note --!!!!!This height setting adjusts the main buttons' background height in IE8!!!!-- */
        height: 40px;
        background-repeat: no-repeat;
        background-position: 95% 50%;
    /* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */
    ul.MenuBarHorizontal ul a.MenuBarItemSubmenu
        background-repeat: no-repeat;
        background-position: 95% 50%;
    /* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */
    ul.MenuBarHorizontal a.MenuBarItemSubmenuHover
        background-repeat: no-repeat;
        background-position: 95% 50%;
    /* My note --mouse over-- */
    /* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */
    ul.MenuBarHorizontal ul a.MenuBarItemSubmenuHover
        background-repeat: no-repeat;
        background-position: 95% 50%;
    BROWSER HACKS: the hacks below should not be changed unless you are an expert
    /* HACK FOR IE: to make sure the sub menus show above form controls, we underlay each submenu with an iframe */
    ul.MenuBarHorizontal iframe
        position: absolute;
        z-index: 1010;
        filter:alpha(opacity:0.1);
    /* HACK FOR IE: to stabilize appearance of menu items; the slash in float is to keep IE 5.0 from parsing */
    @media screen, projection
        ul.MenuBarHorizontal li.MenuBarItemIE
            display: inline;
            f&#92;loat: left;
            /* My note --The backgound color below was changed here to the same color #3e6487 as the darkest tone in the background image graphic to mimic the original image borders; dark blue, since IE8 for some reason would cut them out. This change allows this dark blue background to display around the main top buttons in IE8 giving the appearance of borders*/
            background: #3e6487;
    </code>
    <b>Here is the modified HTML script</b>
    <code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
    &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
    &lt;head&gt;
    &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
    &lt;title&gt;Untitled Document&lt;/title&gt;
    &lt;script src="/SpryAssets/SpryMenuBar.js" type="text/javascript"&gt;&lt;/script&gt;
    &lt;link href="/SpryAssets/SpryMenuBarHorizontal4.css" rel="stylesheet" type="text/css" /&gt;
    &lt;/head&gt;
    &lt;body&gt;
    &lt;ul id="MenuBar1" class="MenuBarHorizontal"&gt;
      &lt;li&gt;&lt;a class="MenuBarItemSubmenu" href="#"&gt;Buy&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href="#"&gt;Shop from Private Owner&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Shop Direct from Stores&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Help Buying&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#" class="MenuBarItemSubmenu"&gt;Bid&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href="#"&gt;Shop from Auction&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Help Bidding&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#" class="MenuBarItemSubmenu"&gt;Trade&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href="#"&gt;Shop for Trades&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Help Trading&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a class="MenuBarItemSubmenu" href="#"&gt;List Items&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href="#"&gt;List Items in Auction&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;List Items for Sale&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;List Items for Trade&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Help Listing Items&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#" class="MenuBarItemSubmenu"&gt;Intro&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href="#"&gt;Flash Site &amp;amp; Intro&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;About Us&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#" class="MenuBarItemSubmenu"&gt;My Xchange&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href="#"&gt;Activity&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Account&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Mail&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;!-- My note --the bellow line was: &lt;li&gt;&lt;a href="#"&gt;Contact Us&lt;/a&gt;&lt;/li&gt; --- changing it to: &lt;li&gt;&lt;a href="#" class="MenuBarItemSubmenu"&gt;Contact Us&lt;/a&gt;     corrected the height of the Contact us button wich did not have sub menus and because of this only diplayed at half size vertically in IE8 //--&gt;
      &lt;li&gt;&lt;a href="#" class="MenuBarItemSubmenu"&gt;Contact Us&lt;/a&gt;
      &lt;li&gt;&lt;a href="#" class="MenuBarItemSubmenu"&gt;Help&lt;/a&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;a href="#"&gt;Main Help&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="#"&gt;Site Map&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
    &lt;script type="text/javascript"&gt;
    &lt;!--
    var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"../SpryAssets/SpryMenuBarDownHover.gif", imgRight:"../SpryAssets/SpryMenuBarRightHover.gif"});
    //--&gt;
    &lt;/script&gt;
    &lt;/body&gt;
    &lt;/html&gt;
    </code>
    And Richard.. Thanks again for the time and your help, truly appreciated.
    Jose H.

  • Only display first form URL in formsweb.cfg . mutiple URL does not work

    Hi Friends,
    I have 4 form application with 4 URL.
    app. server as 10g in window 2003.
    URL like as:
    http://salerpt.com/forms/frmservlet?config=emis-srmenu
    fmx file Location as C:\OraMid\forms\salerpt-Forms fmx name as srmenu.fmx in same directory
    fmb file location as C:\OraMid\forms\salerpt-Forms_source fmx name as srmenu.fmb in same directory
    # Single Sign-On OID configuration parameter
    oracle_home=C:\OraMid
    in formweb.cfg file
    baseHTMLjinitiator=basejini.htm
    workingDirector : workingDirectory= blank. but C:\OraMid\forms\salerpt-Forms right now
    # Forms runtime argument: which form module to run
    ##form=test.fmx
    ## i moved bottom section of form section in here and before
    ##line as Forms runtime argument: database connection details
    comment two line
    #jinit_exename=jinit.exe
    #jinit_mimetype=application/x-jinit-applet;version=1.3.1.22
    I create 4 sections as
    form=srmenu.fmx
    width=1200
    height=700
    pageTitle=Sale Information System (SIS)
    form=regsale.fmx
    form=salefinincial.fmx
    form=rptinfo.fmx
    However it only display first srmenu form interface that i put in( 4 different URL. only display first URL)
    It seems that one formsweb.cfg, it doesn not support multip form setting application.
    I have 4 small forms application with 4 URL for one formsweb.cfg.
    What should I need to do? I think that i miss some set up in configuration.
    I am waiting for your help!
    JIm

    Hi Bgrant,
    Please review my formsweb,cfg.
    Thanks
    I am looking for your help.
    # $Id: formsweb.cfg 15-apr-2005.13:17:30 pkuhn Exp $
    # formsweb.cfg defines parameter values used by the FormsServlet (frmservlet)
    # This section defines the Default settings. Any of them may be overridden in the
    # following Named Configuration sections. If they are not overridden, then the
    # values here will be used.
    # The default settings comprise two types of parameters: System parameters,
    # which cannot be overridden in the URL, and User Parameters, which can.
    # Parameters which are not marked as System parameters are User parameters.
    # SYSTEM PARAMETERS
    # These have fixed names and give information required by the Forms
    # Servlet in order to function. They cannot be specified in the URL query
    # string. But they can be overridden in a named configuration (see below).
    # Some parameters specify file names: if the full path is not given,
    # they are assumed to be in the same directory as this file. If a path
    # is given, then it should be a physical path, not a URL.
    # USER PARAMETERS
    # These match variables (e.g. %form%) in the baseHTML file. Their values
    # may be overridden by specifying them in the URL query string
    # (e.g. "http://myhost.mydomain.com/forms/frmservlet?form=myform&width=700")
    # or by overriding them in a specific, named configuration (see below)
    [default]
    # System parameter: default base HTML file
    baseHTML=base.htm
    # System parameter: base HTML file for use with JInitiator client
    baseHTMLjinitiator=basejini.htm
    # System parameter: base HTML file for use with Sun's Java Plug-In
    baseHTMLjpi=basejpi.htm
    # System parameter: delimiter for parameters in the base HTML files
    HTMLdelimiter=%
    # System parameter: working directory for Forms runtime processes
    # WorkingDirectory defaults to <oracle_home>/forms if unset.
    workingDirectory= C:\OraMid\forms\sales-Forms
    # System parameter: file setting environment variables for the Forms runtime processes
    envFile=default.env
    # Forms runtime argument: whether to escape certain special characters
    # in values extracted from the URL for other runtime arguments
    escapeparams=true
    # Forms runtime argument: which form module to run
    #form=test.fmx
    [[srmenu]]
    form=srmenu.fmx
    width=1200
    height=700
    pageTitle=Sale Management Information System
    [[regsale]]
    form=regsale.fmx
    width=1200
    height=1500
    pageTitle=Sale Management Information System
    [[salefinincial]
    form=salefinincial.fmx
    width=1200
    height=1300
    pageTitle=Sale Management Information System
    [[rtpinfo]]
    form=rptinfo.fmx
    width=1200
    height=1000
    pageTitle=Sale Management Information System
    # Forms runtime argument: database connection details
    userid=scott/tigerd@oracleapp
    # Forms runtime argument: whether to run in debug mode
    debug=no
    # Forms runtime argument: host for debugging
    host=
    # Forms runtime argument: port for debugging
    port=
    # Other Forms runtime arguments: grouped together as one parameter.
    # These settings support running and debugging a form from the Builder:
    otherparams=buffer_records=%buffer% debug_messages=%debug_messages% array=%array% obr=%obr% query_only=%query_only% quiet=%quiet% render=%render% record=%record% tracegroup=%tracegroup% log=%log% term=%term%
    # Sub argument for otherparams
    buffer=no
    # Sub argument for otherparams
    debug_messages=no
    # Sub argument for otherparams
    array=no
    # Sub argument for otherparams
    obr=no
    # Sub argument for otherparams
    query_only=no
    # Sub argument for otherparams
    quiet=yes
    # Sub argument for otherparams
    render=no
    # Sub argument for otherparams
    record=
    # Sub argument for otherparams
    tracegroup=
    # Sub argument for otherparams
    log=
    # Sub argument for otherparams
    term=
    # HTML page title
    pageTitle=Oracle Application Server Forms Services
    # HTML attributes for the BODY tag
    HTMLbodyAttrs=
    # HTML to add before the form
    HTMLbeforeForm=
    # HTML to add after the form
    HTMLafterForm=
    # Forms applet parameter: URL path to Forms ListenerServlet
    serverURL=/forms/lservlet
    # Forms applet parameter
    codebase=/forms/java
    # Forms applet parameter
    imageBase=DocumentBase
    # Forms applet parameter
    #width=750
    width=1024
    # Forms applet parameter
    #height=600
    height=768
    # Forms applet parameter
    separateFrame=false
    # Forms applet parameter
    splashScreen=
    # Forms applet parameter
    background=
    # Forms applet parameter
    lookAndFeel=Oracle
    # Forms applet parameter
    colorScheme=teal
    # Forms applet parameter
    logo=
    # Forms applet parameter
    restrictedURLparams=HTMLbodyAttrs,HTMLbeforeForm,pageTitle,HTMLafterForm,log,allow_debug,allowNewConnections
    # Forms applet parameter
    formsMessageListener=
    # Forms applet parameter
    recordFileName=
    # Forms applet parameter
    serverApp=default
    # Forms applet archive setting for JInitiator
    archive_jini=frmall_jinit.jar
    # Forms applet archive setting for other clients (Sun Java Plugin, Appletviewer, etc)
    archive=frmall.jar
    # Number of times client should retry if a network failure occurs. You should
    # only change this after reading the documentation.
    networkRetries=0
    # Page displayed to Netscape users to allow them to download Oracle JInitiator.
    # Oracle JInitiator is used with Windows clients.
    # If you create your own page, you should set this parameter to point to it.
    jinit_download_page=/forms/jinitiator/us/jinit_download.htm
    # Parameter related to the version of JInitiator
    jinit_classid=clsid:CAFECAFE-0013-0001-0022-ABCDEFABCDEF
    # Parameter related to the version of JInitiator
    #jinit_exename=jinit.exe
    #Version=1,3,1,22
    # Parameter related to the version of JInitiator
    #jinit_mimetype=application/x-jinit-applet;version=1.3.1.22
    # Page displayed to users to allow them to download Sun's Java Plugin.
    # Sun's Java Plugin is typically used for non-Windows clients.
    # (NOTE: you should check this page and possibly change the settings)
    jpi_download_page=http://java.sun.com/products/archive/j2se/1.4.2_06/index.html
    # Parameter related to the version of the Java Plugin
    jpi_classid=clsid:CAFEEFAC-0014-0002-0006-ABCDEFFEDCBA
    # Parameter related to the version of the Java Plugin
    jpi_codebase=http://java.sun.com/products/plugin/autodl/jinstall-1_4_2-windows-i586.cab#Version=1,4,2,06
    # Parameter related to the version of the Java Plugin
    jpi_mimetype=application/x-java-applet;jpi-version=1.4.2_06
    # EM config parameter
    # Set this to "1" to enable Enterprise Manager to track Forms processes
    em_mode=1
    # Single Sign-On OID configuration parameter
    oid_formsid=formsApp_sales.com_0Axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    # Single Sign-On OID configuration parameter
    oracle_home=C:\OraMid
    # Single Sign-On OID configuration parameter
    formsid_group_dn=cn=Logical Application Group, orclApplicationCommonName=formsApp_sales.com_0A4911717Fxxxxxxxxxx, cn=forms, cn=Products, cn=OracleContext
    # Single Sign-On OID configuration parameter: indicates whether we allow
    # dynamic resource creation if the resource is not yet created in the OID.
    ssoDynamicResourceCreate=true
    # Single Sign-On parameter: URL to redirect to if ssoDynamicResourceCreate=false
    ssoErrorUrl=
    # Single Sign-On parameter: Cancel URL for the dynamic resource creation DAS page.
    ssoCancelUrl=
    # Single Sign-On parameter: indicates whether the url is protected in which
    # case mod_osso will be given control for authentication or continue in
    # the FormsServlet if not. It is false by default. Set it to true in an
    # application-specific section to enable Single Sign-On for that application.
    ssoMode=false
    # The parameter allow_debug determines whether debugging is permitted.
    # Administrators should set allow_debug to "true" if servlet
    # debugging is required, or to provide access to the Forms Trace Xlate utility.
    # Otherwise these activities will not be allowed (for security reasons).
    allow_debug=false
    # Parameter which determines whether new Forms sessions are allowed.
    # This is also read by the Forms EM Overview page to show the
    # current Forms status.
    allowNewConnections=true
    # EndUserMonitoring
    # EndUserMonitoringEnabled parameter
    # Indicates whether EUM/Chronos integration is enabled
    EndUserMonitoringEnabled=
    # EndUserMonitoringURL
    # indicates where to record EUM/Chronos data
    EndUserMonitoringURL=
    # Example Named Configuration Section
    # Example 1: configuration to run forms in a separate browser window with
    # "generic" look and feel (include "config=sepwin" in the URL)
    # You may define your own specific, named configurations (sets of parameters)
    # by adding special sections as illustrated in the following examples.
    # Note that you need only specify the parameters you want to change. The
    # default values (defined above) will be used for all other parameters.
    # Use of a specific configuration can be requested by including the text
    # "config=<your_config_name>" in the query string of the URL used to run
    # a form. For example, to use the sepwin configuration, your could issue
    # a URL like "http://myhost.mydomain.com/forms/frmservlet?config=sepwin".
    [sepwin]
    separateFrame=False
    lookandfeel=Generic
    # Example Named Configuration Section
    # Example 2: configuration forcing use of the Java Plugin in all cases (even if
    # the client browser is on Windows)
    [jpi]
    baseHTMLJInitiator=basejpi.htm
    # Example Named Configuration Section
    # Example 3: configuration running the Forms ListenerServlet in debug mode
    # (debug messages will be written to the servlet engine's log file).
    [debug]
    serverURL=/forms/lservlet/debug
    # Sample configuration for deploying WebUtil. Note that WebUtil is shipped with
    # DS but not AS and is also available for download from OTN.
    [webutil]
    WebUtilArchive=frmwebutil.jar,jacob.jar
    WebUtilLogging=off
    WebUtilLoggingDetail=normal
    WebUtilErrorMode=Alert
    WebUtilDispatchMonitorInterval=5
    WebUtilTrustInternal=true
    WebUtilMaxTransferSize=16384
    baseHTMLjinitiator=webutiljini.htm
    baseHTMLjpi=webutiljpi.htm
    archive_jini=frmall_jinit.jar
    archive=frmall.jar
    lookAndFeel=oracle

  • How to limit the length of text in a column

    Hello All,
    I have a report built from direct database request.
    I have a comments column , for some of ID's the comment lines are more than 10. For soem rows it is 1 line and for some rows it is having 10 lines.
    Even though in properties if i select wrap text not helping me.
    I want it to show a single line and remaining 9 lines like a link if user wants to see detailed comment he can click on it.
    Can anyone please help me how to achieve this.
    Thansk in advance.
    SR

    Hi SR,
    Which OBIEE version are you using?
    In obiee 11.1.1.7 the column will be extended up to the length of the data(horizontally and vertically)
    Thanks,
    Pavani

Maybe you are looking for

  • Maximum attachment size capable by Contentserver and/or Gateway

    Hi there, is there a maximum attachment size for up- & downloading attachments to the Contentserver? Are there any known file measurements capable by the Gateway? While playing around with an 100 MB file our Tomcat (we are running the 5.0.2 Portal an

  • Itunes video quality

    Have just recently downloaded a video clip from itunes music store, except the video is jumpy thru out (as in it stops and starts again with a second). Does not happen to any of my other itunes videos. Does anyone have any thoughts/experience with th

  • Quicktime 7.5.5 upgrade problem???

    After installing the new quicktime, itunes and safari, and restart I get the following message after restart- +"application launch failure the application"(null)" could not be launched because of a file sharing error:"a<hp communicatons><apple; carbo

  • K7n2 L - pci to pci bridge problem (unsolveable ressource-conflict)

    hallo. if i enable graphics-adapter(agp - hercules 4500), no pci-devices are shown. it's a e/a conflict between the "pci to pci bridge" and the "nvidianforce2 agp host to pci bridge". i tried to fix it by convert the acpi-pc into a standard-pc and as

  • I'm Not Looking To Format My iPod, Please Help Me.

    I uploaded all my files onto my iPod at a computer at my moms house. Then I went to install the iPod at my dad's, and in order to update my pod, it says i have to "Erase all data on the ipod and upload the library from this computer." I'm not plannin