• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: ajaxtabbedpanel ??
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ajaxtabbedpanel ??


  • Subject: Re: ajaxtabbedpanel ??
  • From: Theodore Petrosky <email@hidden>
  • Date: Sun, 16 Jan 2011 20:06:17 -0800 (PST)

Sharpy,

I don't know if you saw my later post for my 'solution'.

For each TabPanel:

<webObject name = "Tab2">
     <div class = "twoLine">Sees Employee Management:
     <wo:WOCheckBox checked = "$theSecuritySettings.seesUserManagement" />
      <br />
</webobject>

I added a isSelected to the WOD:

Tab2: AjaxTabbedPanelTab {
	id="Tab2";
	name = "Menus";
	isSelected = Tab2Selected;
}

Then I added accessors to the Java and it works. I still have only the one form wrapping the ATP. I can only hope that I am not actually breaking something else.

Thanks for looking at it.

Ted

--- On Sun, 1/16/11, Michael Sharp <email@hidden> wrote:

> From: Michael Sharp <email@hidden>
> Subject: Re: ajaxtabbedpanel ??
> To: "Theodore Petrosky" <email@hidden>
> Cc: email@hidden
> Date: Sunday, January 16, 2011, 10:51 PM
> I think you're going to have to have
> a form per tab.
>
> With a form wrapping the entire ATP, when tabs are selected
> form values are sent for the rendered form fields  only
> and not the hidden/not in the DOM fields.  The app
> seems to interpret this as nulls being provided for the
> missing fields, or in this case a default value of false.
>
> If you override validateTakeValueForKeyPath you should see
> keypaths for non rendered fields showing up with null/false
> values when you select tabs..
>
> Sharpy.
>
>
> On 14/01/2011, at 9:56 PM, Theodore Petrosky wrote:
>
> >
> >
> > --- On Fri, 1/14/11, Michael Sharp <email@hidden>
> wrote:
> >
> >
> >> I do use TabbedPanel in an AMD so
> >> I'll try.
> >>
> >> Any errors in eclipse console or javascript errors
> in the
> >> browser?
> >
> > No errors
> >
> > WOD and java for AMD
> >
> > EditUserModalDialog : AjaxModalDialog {
> >     id = "editUserDialog";
> >     showOpener = false;
> >     locked = true;
> >     slideDownDuration = "0.2";
> >     slideUpDuration = "0.2";
> >     action = editUserMeta;
> >     onClose = refreshUserList;
> >     closeUpdateContainerID
> ="tableBody";
> >     transitions=true;
> > }
> >
> > AMD is called from an opener:
> >
> > EditUserOpener: AjaxModalDialogOpener {
> >     label = current.fullNameString;
> >     dialogId = "editUserDialog";
> >     action = selectUserToEdit;
> >     title = EditUserMDTitle;
> > }
> >
> > public WOActionResults editUserMeta() {
> >     TWTUser_EditMetaComponent nextPage
> =
> (TWTUser_EditMetaComponent)pageWithName(TWTUser_EditMetaComponent.class.getName());
> >     nextPage.setTheUser(aUserToEdit);
> >        
> >     return nextPage;
> > }
> >
> >
> >>
> >> Is it a problem with Tab2 or with any tab after
> the initial
> >> tab is displayed. If you give Tab2 the binding of
> >> "isSelected = true;" does it display the correct
> behaviour?
> >>
> >>> the tabpanel is on an AjaxModalDialog, when I
> create
> >> the modal dialog, I pass in a user object. user
> has a to one
> >> relationship with securitySettings.
> >>
> >> So when you say pass in an object, you mean
> supplied as a
> >> binding to the component where the AMD is
> declared?
> >>
> >> I can't reproduce the problem, maybe the contents
> of your
> >> .wod for TabbedPanel, Tab1 & Tab2 might
> help..
> >
> > Here is all the code:
> >
> >
> > <style>
> >  .ajaxTabbedPanel {
> >    width: auto;
> >    border-bottom: 1px solid #c0c0c0;
> >    padding: 10px 0 0 20px;
> >  }
> >
> >  .ajaxTabbedPanelTab-selected {
> >    display: inline;
> >    padding: 3px 7px 1px 7px;
> >    background: #ffffff;
> >    border: 1px solid #c0c0c0;
> >    border-bottom: 0;
> >  }
> >
> >  .ajaxTabbedPanelTab-unselected {
> >    display: inline;
> >    padding: 2px 7px 0 7px;
> >    background: #f0f0f0;
> >    border: 1px solid #c0c0c0;
> >    border-bottom: 0;
> >    color: #c0c0c0;
> >  }
> >
> >  .ajaxTabbedPanelTab-selected a {
> >    font-weight: bold;
> >    font-size: 12pt;
> >    color: #0066CC;
> >    padding: 6px;
> >  }
> >
> >  .ajaxTabbedPanelTab-unselected a {
> >    font-size: 10pt;
> >    padding: 6px;
> >    color: #a0a0a0;
> >  }
> >
> >  .ajaxTabbedPanelPanes {
> >    width:97%;
> >    padding-left: 0px;
> >    margin: 2%;
> >    min-height: 300px;
> >    overflow: auto;
> >  }
> >
> >  .ajaxTabbedPanelPane-selected {
> >    list-style-type: none;
> >    display: block;
> >    padding: 10px;
> >  }
> >
> >  .ajaxTabbedPanelPane-unselected {
> >    list-style-type: none;
> >    display: none;
> >  }
> >
> >  .tabBox {
> >    border: 1px solid #c0c0c0;
> >    height: 400px;
> >    width: 620px;
> >    overflow: auto;
> >  }
> >
> >  tr.meta1 {
> >  height:30px
> >  }
> > </style>
> > <wo:WOForm multipleSubmit = true>
> >  <div class = "tabBox">
> >    <webObject name = "TabbedPanel">
> >      <webObject name = "Tab1">
> >        <table class =
> "tableDefs" width = "550">
> >          <tr class =
> "meta1">
> >            <td width
> = "110">First Name</td>
> >           
> <td><wo:WOTextField value = "$theUser.firstName"
> size = "65" /></td>
> >          </tr>
> >           <tr
> class = "meta1">
> >            <td
> width="35%">Last Name</td>
> >           
> <td><wo:WOTextField value = "$theUser.lastName"
> size = "65" /></td>
> >          </tr>
> >           <tr
> class = "meta1">
> >           
> <td>Title</td>
> >           
> <td><webobject name = "EmployeeTitlePopUp"
> /></td>
> >          </tr>
> >        </table>
> >
> >      </webObject>
> >      <webObject name = "Tab2">
> >
> > <table width = "250">
> >          <tr>
> >            <td>
> >             
> <div>Sees Employee Management:
> >               
> <wo:WOCheckBox checked =
> "$theSecuritySettings.seesUserManagement" />
> >               
> <br />
> >               
> <br />
> >               
> Sees Client Management:
> >               
> <wo:WOCheckBox checked =
> "$theSecuritySettings.seesClientManagement" />
> >               
> <br />
> >               
> <br />
> >               
> Sees Settings Management:
> >               
> <wo:WOCheckBox checked =
> "$theUser.securitySettings.seesSettingsManagement" />
> >               
> <br />
> >               
> <br />
> >               
> Sees Work Management:
> >               
> <wo:WOCheckBox checked =
> "$theUser.securitySettings.seesWorkManagement" />
> >               
> <br />
> >               
> <br />
> >               
> Sees Billing Management:
> >               
> <wo:WOCheckBox checked =
> "$theUser.securitySettings.seesBillingManagement" />
> >               
> <br />
> >               
> <br />
> >               
> Sees Time Management:
> >               
> <wo:WOCheckBox disabled = application.noTimeTracking
> checked = "$theUser.securitySettings.seesTimeManagement"
> />
> >               
> <br />
> >               
> <br />
> >               
> Sees Task Management:
> >               
> <wo:WOCheckBox disabled = application.noTimeTracking
> checked = "$theUser.securitySettings.seesTaskManagement"
> />
> >             
> </div>
> >              <br
> />
> >            </td>
> >          </tr>
> >        </table>
> >
> > </webObject>
> >    </webObject>
> >  </div>
> >  <br />
> >  <wo:AjaxSubmitButton action = "$save" value =
> "Save" /><wo:AjaxSubmitButton action = "$cancelEdits"
> value = "Cancel" />
> > </wo:WOForm>
> > <div id = "busydiv" style = "display: none;">
> <webobject name = "BusyImage" /> Loading...
> </div>
> > <p style = "width: 600px;"> </p>
> >
> > WOD
> >
> >
> > TabbedPanel: AjaxTabbedPanel {
> >     id = "tabbedPanel";
> >     busyDiv = "busydiv";
> > }
> >
> > Tab1: AjaxTabbedPanelTab {
> >     id = "tab1";
> >     name = "Employee";
> >     isSelected = true;
> > }
> >
> > Tab2: AjaxTabbedPanelTab {
> >     name = "Menus";
> >     refreshOnSelect=true;
> >    
> > }
> >
> > BusyImage : WOImage {
> >  framework = "Ajax";
> >  filename = "wait30.gif";
> > }
> >
> > EmployeeTitlePopUp : WOPopUpButton {
> >     list = eTitleList;
> >     selection = theUser.employeeTitle;
> >     displayString =
> theUser.employeeTitle.eTitleTitle;
> >     item = theUser.employeeTitle;
> >    
> > }
> >
> > JAVA
> >
> > package com.eltek.components;
> >
> > import com.eltek.model.EmployeeTitle;
> > import com.eltek.model.SecuritySettings;
> > import com.eltek.model.User;
> > import com.webobjects.appserver.WOContext;
> > import com.webobjects.appserver.WOResponse;
> >
> > import er.ajax.AjaxModalDialog;
> > import er.extensions.components.ERXComponent;
> > import com.webobjects.appserver.WOActionResults;
> > import
> com.webobjects.eoaccess.EOGeneralAdaptorException;
> > import com.webobjects.foundation.NSArray;
> > import com.webobjects.foundation.NSLog;
> > import
> com.webobjects.foundation.NSValidation.ValidationException;
> >
> > public class EditUserMeta extends ERXComponent {
> >    public String formValueA;
> >     public String formValueB;
> >     public String formValueC;
> >     private User theUser;
> >     public NSArray<EmployeeTitle>
> eTitleList;
> >     private SecuritySettings
> theSecuritySettings;
> >
> >
> >     public EditUserMeta(WOContext
> context) {
> >        super(context);
> >    }
> >
> >     public void
> appendToResponse(WOResponse response, WOContext context) {
> >
> >     eTitleList =
> EmployeeTitle.fetchEmployeeTitles(theUser().editingContext(),
> EmployeeTitle.IS_ACTIVE.eq(true),
> EmployeeTitle.E_TITLE_TITLE.ascs());
> >
> >     super.appendToResponse(response,
> context);
> >     }
> >    
> >     public WOActionResults save() {
> >        
> >         try {
> >        
>    
> theUser().editingContext().saveChanges();
> >         } catch
> (ValidationException e) {
> >        
>     NSLog.out.appendln("ValidationException e
> = " + e.getMessage());
> >
> >         } catch
> (EOGeneralAdaptorException e) {
> >        
>    
> NSLog.out.appendln("EOGeneralAdaptorException e = "
> >        
>             +
> e.getMessage());
> >         }
> >        
> >        
> theUser().editingContext().revert();
> >
> >        
> AjaxModalDialog.close(context());
> >         return null;
> >     }
> >
> >     public void setTheUser(User
> theUser) {
> >         this.theUser =
> theUser;
> >        
> >         //experiment
> with new accessor for the security settings
> >        
> >        
> this.setTheSecuritySettings(theUser.securitySettings());
> >     }
> >
> >     public User theUser() {
> >         return theUser;
> >     }
> >
> >     public WOActionResults
> cancelEdits() {
> >        
> >        
> theUser().editingContext().revert();
> >
> >        
> AjaxModalDialog.close(context());
> >         return null;
> >     }
> >
> >     public void
> setTheSecuritySettings(SecuritySettings theSecuritySettings)
> {
> >        
> this.theSecuritySettings = theSecuritySettings;
> >     }
> >
> >     public SecuritySettings
> theSecuritySettings() {
> >         return
> theSecuritySettings;
> >     }
> > }
> >
> >
> >>
> >> Sharpy..
> >>
> >>>
> >>> on panel one, I am displaying and editing
> user
> >> metadata. on panel two, I want to edit some
> security
> >> settings.
> >>>
> >>> if i put on tab one:
> >>> see user area <wo:WOCheckBox checked =
> >> "$theUser.securitySettings.seesUserManagement"
> />
> >>>
> >>> I get the checkbox with this user
> seesUserManagement
> >> setting.
> >>>
> >>> However, if this same code is on tab two,
> there is no
> >> connection to the object.
> >>>
> >>>
> >>> <wo:WOForm multipleSubmit = true;>
> >>>   <div class = "tabBox">
> >>>     <webObject name =
> "TabbedPanel">
> >>>       <webObject
> name = "Tab1">
> >>>     
>    <table class =
> >> "tableDefs" width = "550">
> >>>       
>    <tr class =
> >> "meta1">
> >>>         
>    <td width
> >> = "110">First Name</td>
> >>>           
> >> <td><wo:WOTextField value =
> "$theUser.firstName"
> >> size = "65" /></td>
> >>>       
>    </tr>
> >>>
> >>>     
>    </table>
> >>> <br/><br/>
> >>>
> >>> see user area <wo:WOCheckBox checked =
> >> "$theUser.securitySettings.seesUserManagement"
> />
> >>>
> >>> </webObject  name = "Tab1">
> >>>
> >>> <webObject name = "Tab2">
> >>>
> >>> <wo:WOCheckBox checked =
> >> "$theUser.securitySettings.seesUserManagement"
> />
> >>>
> >>> </webObject name = "Tab2">
> >>> </webObject name = "TabbedPanel">
> >>> </div>     
> >>> <wo:AjaxSubmitButton action =
> "$cancelEdits" value
> >> = "Cancel" /><wo:AjaxSubmitButton action =
> "$save"
> >> value = "Save" />
> >>> </wo:WOForm>
> >>>
> >>>
> >>> why doesn't tab2 connect to
> >> "$theUser.securitySettings.seesUserManagement"
> >>>
> >>> on tab1 the checkbox is checked (correct)
> however on
> >> tab2 no check.
> >>>
> >>> I don't even know if I am explaining this
> clearly
> >> enough.
> >>>
> >>> Help, please.
> >>>
> >>> Ted
> >>>
> >>>
> >>>
> >>>
> >>>
> _______________________________________________
> >>
> >
> > Any help would be appreciated
> >
> >
> > Ted
> >
> >
> >
> >
> >
>
>



 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

References: 
 >Re: ajaxtabbedpanel ?? (From: Michael Sharp <email@hidden>)

  • Prev by Date: Re: ajaxtabbedpanel ??
  • Next by Date: who's killing my poor instance --
  • Previous by thread: Re: ajaxtabbedpanel ??
  • Next by thread: trouble with ERXBatchingDisplayGroup
  • Index(es):
    • Date
    • Thread