Clone Tools
  • last updated 25 mins ago
Constraints: committers
Constraints: files
Constraints: dates
ISIS-695: removing refs to wicket extensions from example apps


- removing references to extensions in the todo app


- removing references to extensions in the simple app



- reinstating method that had been removed from EntityModel (breaking one of the github extensions)

  1. … 5 more files in changeset.
ISIS-695: fixing missing license headers

- also reinstating cron job for example app, accidentally removed

- moving hsqldb to 2.3.1, since 2.3.2 seems to be a bust

  1. … 13 more files in changeset.
ISIS-691: improved null handling for drop-down lists

- for entity refs, if null, shouldn't default to showing the first in list

- for values (enums), should be able to set to null (in list, the blank line)

- get rid of clear link for entity refs, instead set by choosing from list, same as the value drop-down

  1. … 12 more files in changeset.
ISIS-651: fixing NPE in ActionMemento and similar

Also: forcing invalidation of Isis ObjectSpec in EntityPage (else the UI is rendered w.r.t old Isis metadata)

Not exactly sure why either of these are problems. For the latter, certainly, it seems that the IsisJRebelPlugin invalidates the

cache correctly, but it isn't picked up. It would seem that the Wicket viewer is holding the ActionMemento, PropertyMemento and CollecitonMemento in-memory?


- adding maxPermSize to launch config for simple app.

  1. … 2 more files in changeset.
ISIS-665: auto-escalate application exceptions to fatal exceptions

In addition:

- added RecoverableException, NonRecoverableException, FatalException into the hierarchy

- RecoverableException is synonym for ApplicationException (immediate supertype)

- NonRecoverableException is synonym for FatalException (immediate supertype_

- basically any other runtime exception thrown by the app

extended ToDoItem to demonstrate usage.

  1. … 32 more files in changeset.
ISIS-661, also fixes for ISIS-660,ISIS-658,ISIS-624.

ISIS-661: BackgroundTaskService

- with JDO implementation

ISIS-660: refinements to Interaction context

- and rename Transactional to HasTransactionId

- introduce non-API for MementoServiceDefault to switch off encoding

ISIS-658: fix length for timestamp panel, show milliseconds

- and extend WicketViewerSettings, to have a timestamp setting property

ISIS-624: fix for @Digits, honour scale when *not* annotated with @Column

In addition:

- fix for wicket viewer, show @Prototype actions if associated with properties

(ie as additional links)

  1. … 28 more files in changeset.
ISIS-592,ISIS-593,ISIS-640,ISIS-659,ISIS-660: renaming...

... ViewModelSupport to MementoService

  1. … 10 more files in changeset.
ISIS-486: download blob/clob was broken...

... following the modal action refactor.


* Can't figure out how to get the redirect url to redirect to a new page;

* only supports no-arg actions currently.

  1. … 9 more files in changeset.
ISIS-638: copy link correct when page rendered.

When render a new entity (eg from following a link), then automatically set

up the URL of that entity into the zclip copy link.

  1. … 4 more files in changeset.
ISIS-618: bookmarked actions were broken...

post previous refactoring, the PageParameters held in the BookmarkTreeNode

were incomplete for action prompts (issue ultimately primarily to do with

using mounted pages for action prompt)

In addition:

- update to todo app, new 'categorized' action.

  1. … 12 more files in changeset.
ISIS-642: added breadcrumb panel

In addition:

- moved BookmarkedPagedModelProvider from applicaiton (which has global scope) to session (per user)

  1. … 14 more files in changeset.
ISIS-638: fixing order that hints are applied...

... and some refactoring to centre responsibility for setting page/sort hints in the dataTable.

  1. … 12 more files in changeset.
ISIS-638: clipboard panel now subscribes for itself...

... rather than relying on the EntityIconAndTitlePanel.

This latter now strips off any UI hints.

In addition:

* any out-of-range or non-parseable/invalid hints are ignored.

  1. … 12 more files in changeset.
ISIS-638: ui hints and clipboard behaviour

Now captures view selection/page number/sorting for tables

New stuff:

* UiHintContainer (implemented by EntityModel)

* overrides of the various AjaxPaging widgets to send UiSetHint to owning page

* broadcast of UiHintEvents to all children

* subscription of hint events by EntityIconAndTitlePanel

* ZipClipboardLink, copy href from EntityIconAndTitlePanel

Also updated the archetypes web.xmls

  1. … 40 more files in changeset.
ISIS-634: drop downs honour @TypicalLength

and enums' implementation of TypicalLengthFacet inspects actual length of those enums.

In addition:

- fixed a failing couple of tests in core.

  1. … 14 more files in changeset.
ISIS-620: fixed bookmark pages so holds oids without versions

so cannot accidentally trigger a concurrency exception

Also updated to EntityPropertiesForm so that a concurrency exception,

when detected, is correctly rendered (by setting the response page to

the entity page for redisplay in this case)

  1. … 2 more files in changeset.
ISIS-486: fixing defaults and focus handling

If open up an action prompt, then cancel, then open up

again, then any defaults for the action parameters were

not being setup second time around.

In addition:

* use Wicket API to set focus on first param, rather than JQuery hack

* minor tweaks to CSS so can see when an OK or Cancel button has focus

  1. … 5 more files in changeset.
ISIS-486: action prompts shown in modal dialog.

... now the default, unless disabled using "isis.viewer.wicket.disableModalDialogs" property.

  1. … 33 more files in changeset.
ISI-486: using ModalWindow

... not yet complete, so disabled unless switched on using

'isis.viewer.wicket.enableModalDialogs' flag.

In addition, added missing bus logic to example ToDoItem.

  1. … 29 more files in changeset.
ISIS-618: value and void returns now also delegate to separate pages

... ie VoidReturnPage and ValuePage.

ActionPage renamed to ActoinPromptPage.

In addition, the logic in StandaloneValuePanel, handling blobs vs clobs vs urls,

is now moved earlier into ActionPromptPage.

Also, got rid of ActionPage.SingleResultMode, since no need to render results inline.

Also, removed (partially implemented) support for the rendering of transient objects;

will fail fast. (Previously Wicket viewer would render the object, but didn't

provide a save button. So clearly this feature isn't being used).

Also: added some hackery to BookmarkPagesModel, to protect against earlier failures

corrupting the rootNodeList (preventing any subsequent ability to use the app).

  1. … 28 more files in changeset.
ISIS-618: standalone collections now rendered in own page...

... rather than inlined as part of the action page.


- renamed ActionPage to ActionPromptPage (because that is what it's responsibilities will ultimately be)

  1. … 25 more files in changeset.
ISIS-612: suppress veil for object actions.

In addition:

- some minor tidy-up of misc classes (no functional changes).

  1. … 6 more files in changeset.
ISIS-608, ISIS-609: showing collection counts, suppress actions.

  1. … 6 more files in changeset.
ISIS-594,ISIS-589: simplified URLs; method rename for CSS bundling

Specifically, for ISIS-594:

- IsisWicketApplication, mount pages using mount(...) method

- PageParameterNames, removed ACTION_MODE, PAGE_TITLE, PAGE_TYPE

- BookmarkableModel (as implemented by ActionModel and EntityModel)

- extended to define getTitle() - since no longer in PageParameters

- no longer caches page parameters, since caching of title done in subclasses

- rename asPageParameters() to getPageParameters(), made abstract

- ActionModel now infers pageType, actionMode, pageTitle (caches title);

also the page parameter's Oid when called in getPageParameters() - as used for bookmarks -

no longer holds the version (there's no need for bookmarks);

also creates with INLINE vs REDIRECT mode (since bookmarkable actions have safe action semantics)

- EntityModel now infers pageType, pageTitle

- BookmarkTreeNode refactored significantly:

- holds bookmarkableModel as field rather than pageParameters

- infers pageType from runtime type of provided BookmarkableModel

- now caches title, updateable on matching as previously

- does matching simply on pageParameters (was able to remove the hack

whereby pageTitle in page parameters had to be temporarily removed,

since that is no longer a parameter name at all)

- BookmarkTreeNodeComparator refactored a little:

- order by pageType (as previously), then class name (for both actions as well as entities), then the title

- BookmarkedPagesModel simplified

- removed isValidParameters() check, since those parameter names (page title, page type) have now gone

- #titleFrom helper also removed, no longer called

- BookmarkedPagesPanel now gets page type and page title from the BookmarkedPagesModel,

rather than the page parameters

- ActionLinkPanel, AppActionsCssMenuLinkFactory updated w.r.t getPageParameters() call etc

- PageAbstract constructor now takes a title, since no longer passed as a page parameter

- EntityPage and ActionPage provide a title

- remaining do not, defaults to application name

for ISIS-589:

- renamed ComponentFactory#getCssResourceReferences to #getCssResourceReference,

because only ever returns a single object

(in an earlier version of the impl, this method returned a list)

- removed CollectionContentsAsSummary from bundle, trying to get its CSS image url to work

  1. … 18 more files in changeset.
ISIS-401: show concurrency ex. if object changed while action prompt is displayed

In fact, was displaying already for some actions (eg ToDoItem#updateCost). However,

for ToDoItem#updateCategories(...) it was not, because the loading of the

object adapters to compute the choices was causing the adapter to be

silently resynced.

This is now captured and we forward onto the entity page, as per normal.

  1. … 2 more files in changeset.
ISIS-401: highlight row in table if changed by other

How it works:

- When the concurrency exception is found, it is stored in the EntityModel of the row.

- IsisAjaxFallbackDataTable now uses a custom IItemReuseStrategy that allows this this model

to be reused for the repainting of the table with new UI Items.

- requires EntityModel to implement equals/hashCode

- when repainting is done, the exception is cleared and in its stead the

row has a class set, "reloaded-after-concurrency-exception". This is

styled to highlight the row.

- a new Javascript library "livequery" (MIT licensed), sets up a callback

that looks for this new class. It sets up a callback to detect any row

element with this class and to remove it after a short period.

  1. … 13 more files in changeset.
ISIS-565: honour NotPersistedFacet...

... when flushing EntityModel's collection of propertyScalarModels when the form is submitted.

What was happening here is that the contributed property 'lastInvoice' (in

Estatio) has no value on it, and also has no facet to handle it being

modified (it should not need one, since it declares itself to be not-persisted

using the NotPersistedFacet)

ISIS-401: concurrency checking in bulk actions

If user A and user B both check a row, then user A updates that row then

user B updates that row, then show warning to user B and refresh list.

In addition:

- renamed MyAjaxFallback* -> IsisAjaxFallback*

- moved some Functions and Matchers into nester static classes of Oid

and ObjectAdapterMemento

  1. … 9 more files in changeset.
ISIS-401: reinstated and refined concurrency checking for invoking actions


- if invoking an action with "safe" semantics, then no concurrency checking is performed

- if invoke a no-arg action, and detect change, then render the entity

and pop up a warning

- if invoke an action with args, and detect change, then render the entity (rather than

the action prompt form) and pop up a warning

  1. … 5 more files in changeset.
ISIS-554: reworking dashboard into a @HomePage annotation

instead of a @Dashboard service, instead we indicate that precisely (at most)

one domain service action is the @HomePage action. This can return any object,

eg a view model representing a dashboard, or a simple list, or may even

accept arguments (in which case an action prompt will be automatically displayed).

In addition:

- slight hack to lazily maintain the specId cache after loading any spec

- required for view model specs that are not eagerly loaded

- new convenience AbstractHomePageDashboardService added to applib

- ActionPanel's NoResultHandler removed, since had no function

(and was causing the EmptyCollectionPanelFactory to not correctly render an empty

collection for @HomePage action that returned no results)

- added convenience AbstractContainedObject#newViewModelInstance(...) method

Minor fixes to CSS:

- so that hovering over a plain label in a Wicket viewer

table is shown as a regular default cursor, not a pointer (hand)

- on custom application.css in quickstart app, for x-abc demo styles

- minor fixes to CSS

  1. … 36 more files in changeset.