Huh.  Annoying.  That's probably a defect in the Wicket viewer.

Could you raise a ticket for that in JIRA?

And in the meantime, as you say... use the other syntax.

Sorry for the run-around.

Dan




On 15 August 2013 13:35, james agada <[email protected]> wrote:

> Ok. Done that. Now the error goes away but then no defaults come up. For
> instance eventhough I set the default TransactionType, it does not show up
> neither does the default date. Does this method of doing defaults work or
> should i just do it parameter by parameter.
>
>
> On Thu, Aug 15, 2013 at 1:09 PM, Dan Haywood
> <[email protected]>wrote:
>
> > The documentation [1] is wrong (or was wrong if you read this after the
> > edit I'm about to do...)
> >
> > Looking at the code [2], we expect the defaultXxx method to take no-args.
> >  In other words, we don't account for overloaded actions (which are very
> > rare anyway, also not advisable because it is confusing in the UI).
> >
> > So, to fix, just remove the parameters from the default method.
> >
> > I'll fix the documentation right now.
> >
> > Dan
> >
> >
> > [1]
> >
> >
> http://isis.apache.org/applib-guide/how-tos/how-to-03-050-How-to-specify-default-values-for-an-action-parameter.html
> > [2]
> >
> >
> https://github.com/apache/isis/blob/255ef5146bdcea69a5b0a3acb1d29ddc87d927cd/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/defaults/method/ActionDefaultsFacetFactory.java
> >
> >
> >
> > On 15 August 2013 12:07, james agada <[email protected]> wrote:
> >
> > > >
> > > > /*
> > > >
> > > >  *  Licensed to the Apache Software Foundation (ASF) under one
> > > >
> > > >  *  or more contributor license agreements.  See the NOTICE file
> > > >
> > > >  *  distributed with this work for additional information
> > > >
> > > >  *  regarding copyright ownership.  The ASF licenses this file
> > > >
> > > >  *  to you under the Apache License, Version 2.0 (the
> > > >
> > > >  *  "License"); you may not use this file except in compliance
> > > >
> > > >  *  with the License.  You may obtain a copy of the License at
> > > >
> > > >  *
> > > >
> > > >  *        http://www.apache.org/licenses/LICENSE-2.0
> > > >
> > > >  *
> > > >
> > > >  *  Unless required by applicable law or agreed to in writing,
> > > >
> > > >  *  software distributed under the License is distributed on an
> > > >
> > > >  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > > >
> > > >  *  KIND, either express or implied.  See the License for the
> > > >
> > > >  *  specific language governing permissions and limitations
> > > >
> > > >  *  under the License.
> > > >
> > > >  */
> > > >
> > > > package dom.todo;
> > > >
> > > >
> > > > import java.math.BigDecimal;
> > > >
> > > > import java.util.Collections;
> > > >
> > > > import java.util.List;
> > > >
> > > >
> > > > import com.google.common.base.Objects;
> > > >
> > > >
> > > > import org.joda.time.LocalDate;
> > > >
> > > > import org.joda.time.*;
> > > >
> > > >
> > > > import org.apache.isis.applib.AbstractFactoryAndRepository;
> > > >
> > > > import org.apache.isis.applib.annotation.ActionSemantics;
> > > >
> > > > import org.apache.isis.applib.annotation.ActionSemantics.Of;
> > > >
> > > > import org.apache.isis.applib.annotation.Hidden;
> > > >
> > > > import org.apache.isis.applib.annotation.MemberOrder;
> > > >
> > > > import org.apache.isis.applib.annotation.Named;
> > > >
> > > > import org.apache.isis.applib.annotation.NotInServiceMenu;
> > > >
> > > > import org.apache.isis.applib.annotation.Optional;
> > > >
> > > > import org.apache.isis.applib.annotation.Programmatic;
> > > >
> > > > import org.apache.isis.applib.annotation.RegEx;
> > > >
> > > > import org.apache.isis.applib.clock.Clock;
> > > >
> > > > import org.apache.isis.applib.filter.Filter;
> > > >
> > > >
> > > > @Named("Transactions")
> > > >
> > > > public class Transactions extends AbstractFactoryAndRepository {
> > > >
> > > >
> > > >     // {{ Id, iconName
> > > >
> > > >     @Override
> > > >
> > > >     public String getId() {
> > > >
> > > >         return "Transactions";
> > > >
> > > >     }
> > > >
> > > >
> > > >     public String iconName() {
> > > >
> > > >         return "Transactions";
> > > >
> > > >     }
> > > >
> > > >     // }}
> > > >
> > > >
> > > >
> > > >     // {{ newTransaction  (action)
> > > >
> > > >     @ActionSemantics(Of.SAFE)
> > > >
> > > >     @MemberOrder(sequence = "1")
> > > >
> > > >     @Named("New Transaction")
> > > >
> > > >     public Transaction newTransaction(
> > > >
> > > >             @RegEx(validation = "\\w[@&:\\-\\,\\.\\+ \\w]*") //
> words,
> > > > spaces and selected punctuation
> > > >
> > > >             @Named("Description") String description,
> > > >
> > > >     @Named("Type") Transaction.TransactionType transactiontype,
> > > >
> > > >     @Named("Issuing Party")Party fromParty,
> > > >
> > > >     @Named("Receiving Party ") Party toParty,
> > > >
> > > >     @Named("Denomination") VoucherDenomination voucherDenomination,
> > > >
> > > >     @Named("Quantity ") BigDecimal quantity,
> > > >
> > > >     @Named("In Units Of ") Sku sku,
> > > >
> > > >     @Optional
> > > >
> > > >     @Named("VoucherCode ") String voucherCode,
> > > >
> > > >     @Optional
> > > >
> > > >     @Named("Serial Number ") String serialNo,
> > > >
> > > >     @Named("Transaction Date") LocalDate transactionDate,
> > > >
> > > >     @Optional
> > > >
> > > >     @Named("Ticket valid to") LocalDate validTo,
> > > >
> > > >     @Named("Face Value") BigDecimal faceValue ){
> > > >
> > > >         final String ownedBy = currentUserName();
> > > >
> > > >         return newTransaction(description, transactiontype,
> fromParty,
> > > > toParty, voucherDenomination,
> > > >
> > > >       quantity, sku, voucherCode,serialNo, transactionDate,validTo,
> > > > faceValue, ownedBy);
> > > >
> > > >     }
> > > >
> > > >
> > > >     // }}
> > > >
> > > >     // default new transaction
> > > >
> > > >  public Object[] defaultNewTransaction(
> > > >
> > > >             String description,
> > > >
> > > >     Transaction.TransactionType transactiontype,
> > > >
> > > >     Party fromParty,
> > > >
> > > >     Party toParty,
> > > >
> > > >     VoucherDenomination voucherDenomination,
> > > >
> > > >     BigDecimal quantity,
> > > >
> > > >     Sku sku,
> > > >
> > > >     String voucherCode,
> > > >
> > > >     String serialNo,
> > > >
> > > >     LocalDate transactionDate,
> > > >
> > > >     LocalDate validTo,
> > > >
> > > >     BigDecimal faceValue) {
> > > >
> > > >         return new Object[] {
> > > >
> > > >             "New Sale",
> > > >
> > > >     Transaction.TransactionType.SALE,
> > > >
> > > >     getPartyFromCurrentUser(currentUserName()),
> > > >
> > > >     getDefaultToPartyForCurrentUser(currentUserName()),
> > > >
> > > >     getDefaultDenominationForCurrentUser(currentUserName()),
> > > >
> > > >     new BigDecimal(0),
> > > >
> > > >     getDefaultSkuForDenomination(currentUserName()),
> > > >
> > > >     getDefaultVoucherCode(currentUserName()),
> > > >
> > > >     getDefaultSerialNo(currentUserName()),
> > > >
> > > >     new DateTime(),
> > > >
> > > >     new BigDecimal(0)
> > > >
> > > >         };
> > > >
> > > >     }
> > > >
> > > >     //
> > > >
> > > >     //helpers
> > > >
> > > >     private Party getPartyFromCurrentUser(String currentUser){
> > > >
> > > > // find the party that is attached to this current user. In reality
> we
> > > > look through all the parties and find which one has the same user
> name
> > > >
> > > > return null;
> > > >
> > > >     }
> > > >
> > > >     private Party getDefaultToPartyForCurrentUser(String
> currentUser) {
> > > >
> > > > // find the person he normally transacts with
> > > >
> > > > return null;
> > > >
> > > >     }
> > > >
> > > >     private VoucherDenomination
> > > > getDefaultDenominationForCurrentUser(String currentUser){
> > > >
> > > > //find the most common denominator he deals with
> > > >
> > > > return null;
> > > >
> > > >     }
> > > >
> > > >     private Sku getDefaultSkuForDenomination(String currentUser){
> > > >
> > > > //find the default sku
> > > >
> > > > return null;
> > > >
> > > >     }
> > > >
> > > >     private String getDefaultVoucherCode(String currentUser) {
> > > >
> > > >     //find default vouchercode
> > > >
> > > > return null;
> > > >
> > > >     }
> > > >
> > > >     private String getDefaultSerialNo(String currentUser){
> > > >
> > > > //default serial number
> > > >
> > > > return null;
> > > >
> > > >     }
> > > >
> > > >     //
> > > >
> > > >     //
> > > >
> > > >     // {{ newTransaction  (hidden)
> > > >
> > > >     @Hidden // for use by fixtures
> > > >
> > > >     public Transaction newTransaction(
> > > >
> > > >             final String description,
> > > >
> > > >     final Transaction.TransactionType transactiontype,
> > > >
> > > >     final Party fromParty,
> > > >
> > > >     final Party toParty,
> > > >
> > > >     final VoucherDenomination voucherDenomination,
> > > >
> > > >     final BigDecimal quantity,
> > > >
> > > >     final Sku sku,
> > > >
> > > >     final String voucherCode,
> > > >
> > > >     final String serialNo,
> > > >
> > > >     final LocalDate transactionDate,
> > > >
> > > >     final LocalDate validTo,
> > > >
> > > >     final BigDecimal faceValue,
> > > >
> > > >     final String ownedBy) {
> > > >
> > > >         final Transaction t =
> newTransientInstance(Transaction.class);
> > > >
> > > > t.setDescription(description);
> > > >
> > > > t.setTransactionType(transactiontype);
> > > >
> > > > t.setFromParty(fromParty);
> > > >
> > > > t.setToParty(toParty);
> > > >
> > > > t.setVoucherDenomination(voucherDenomination);
> > > >
> > > > t.setQuantity(quantity);
> > > >
> > > > t.setSku(sku);
> > > >
> > > > t.setVoucherCode(voucherCode);
> > > >
> > > > t.setSerialNumber(serialNo);
> > > >
> > > > t.setTransactionDate(transactionDate);
> > > >
> > > > t.setValidTo(validTo);
> > > >
> > > > t.setFaceValue(faceValue);
> > > >
> > > > t.setOwnedBy(ownedBy);
> > > >
> > > >         persist(t);
> > > >
> > > >         return t;
> > > >
> > > >     }
> > > >
> > > >
> > > >
> > > >     protected String currentUserName() {
> > > >
> > > >         return getContainer().getUser().getName();
> > > >
> > > >     }
> > > >
> > > >
> > > >
> > > > }
> > > >
> > >
> > > >>
> > >
> > > On Wed, Aug 14, 2013 at 6:23 PM, james agada <[email protected]>
> > wrote:
> > >
> > > > I have created an action in a service Transactions.java attached and
> > > added
> > > > the defaultNewTransaction method in ordr to populate default values.
> It
> > > > compiles alright but when I try to run, I get this error
> > > >
> > > >      [exec] 1) Error in custom provider,
> > > >
> > >
> >
> org.apache.isis.core.metamodel.specloader.validator.MetaModelInvalidException:
> > > > 1: dom.todo.Transactions#defaultNewTransaction has prefix default,
> has
> > > > probably been orphaned.  If not an orphan, then rename and use @Named
> > > > annotation
> > > >
> > > > May be I am doing it wrong but can some one help. Is it only inside
> > > entity
> > > > that you can use default?
> > > >
> > >
> >
>

Reply via email to