Class MobileUILayout

  • All Implemented Interfaces:
    io.nevernull.mobileui.core.PropertyFireListener, io.nevernull.mobileui.core.ResourceUpdateListener, org.robovm.apple.coreanimation.CALayerDelegate, org.robovm.apple.foundation.NSCoding, org.robovm.apple.foundation.NSObjectProtocol, org.robovm.apple.uikit.UIAccessibility, org.robovm.apple.uikit.UIAccessibilityIdentification, org.robovm.apple.uikit.UIAppearanceContainer, org.robovm.apple.uikit.UICoordinateSpace, org.robovm.apple.uikit.UIDynamicItem, org.robovm.apple.uikit.UIFocusEnvironment, org.robovm.apple.uikit.UIFocusItem, org.robovm.apple.uikit.UIFocusItemContainer, org.robovm.apple.uikit.UITraitEnvironment, org.robovm.objc.ObjCProtocol

    public class MobileUILayout
    extends AbstractViewAdapter
    implements io.nevernull.mobileui.core.ResourceUpdateListener, io.nevernull.mobileui.core.PropertyFireListener
    MobileUI Layout for iOS that can be used as part of the UIView-tree or as view for a UIViewController.

    To use a MobileUI layout in your UIViewController, create it within the loadView() method like this:

     @Override
     public void loadView() {
         setView(new MobileUILayout("Main.layout.xml", this));
     }
     

    The second parameter is the binding context for the UI data bindings.

    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.robovm.apple.uikit.UIView

        org.robovm.apple.uikit.UIView.UIViewPtr
      • Nested classes/interfaces inherited from class org.robovm.apple.uikit.UIResponder

        org.robovm.apple.uikit.UIResponder.UIResponderPtr
      • Nested classes/interfaces inherited from class org.robovm.apple.foundation.NSObject

        org.robovm.apple.foundation.NSObject.Marshaler, org.robovm.apple.foundation.NSObject.NoRetainMarshaler, org.robovm.apple.foundation.NSObject.NSKeyValueObserver, org.robovm.apple.foundation.NSObject.NSObjectPtr
      • Nested classes/interfaces inherited from class org.robovm.objc.ObjCObject

        org.robovm.objc.ObjCObject.ObjCObjectPtr, org.robovm.objc.ObjCObject.Super
      • Nested classes/interfaces inherited from interface org.robovm.apple.uikit.UIAccessibility

        org.robovm.apple.uikit.UIAccessibility.Notifications
    • Field Summary

      • Fields inherited from class org.robovm.apple.foundation.NSObject

        FLAG_NO_RETAIN
    • Constructor Summary

      Constructors 
      Constructor Description
      MobileUILayout​(java.lang.String layoutResource)
      Creates a layout from the given XML-resource without binding context.
      MobileUILayout​(java.lang.String layoutResource, boolean bindToTestObject)
      Creates a layout for a given XML-resource and optionally binds to the testObject that is embedded within the layout XML file.
      MobileUILayout​(java.lang.String layoutResource, java.lang.Object bindingContext)
      Creates a layout from the given XML-resource binding to the given bindingContext.
      MobileUILayout​(org.robovm.apple.uikit.UIViewController viewController, java.lang.String layoutResource, java.lang.Object bindingContext)
      Creates a layout from the given XML-resource binding to the given bindingContext using the given as source for lifecycle events.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void didMoveToWindow()
      Internal API
      void firePropertyChanged​(java.lang.String... properties)
      Fire a property change for this layout and bindingContext.
      android.view.View<org.robovm.apple.uikit.UIView> getContentView()
      Internal API
      <T extends org.robovm.apple.uikit.UIView>
      T
      getNativeView​(java.lang.String id)
      Returns the UIView that is the delegate of the View carrying the given ID.
      void onResourceUpdate​(java.lang.String absoluteResourceName)
      Internal API
      void removeFromController()  
      • Methods inherited from class org.robovm.apple.uikit.UIView

        addConstraint, addConstraints, addGestureRecognizer, addInteraction, addKeyframe, addLayoutGuide, addMotionEffect, addSubview, animate, animate, animate, animate, animateKeyframes, areAnimationsEnabled, autoresizesSubviews, beginAnimations, bringSubviewToFront, canBecomeFocused, clearsContextBeforeDrawing, clipsToBounds, commitAnimations, convertPointFromCoordinateSpace, convertPointFromView, convertPointToCoordinateSpace, convertPointToView, convertRectFromCoordinateSpace, convertRectFromView, convertRectToCoordinateSpace, convertRectToView, decodeRestorableState, didAddSubview, didHintFocusMovement, didMoveToSuperview, didUpdateFocus, displayLayer, draw, draw, drawLayer, drawViewHierarchy, encode, encodeRestorableState, endEditing, exchangeSubview, exerciseAmbiguityInLayout, focusItemsInRect, gestureRecognizerShouldBegin, getAccessibilityIdentifier, getAction, getAlignmentRectForFrame, getAlignmentRectInsets, getAlpha, getAutoresizingMask, getBackgroundColor, getBottomAnchor, getBounds, getCenter, getCenterXAnchor, getCenterYAnchor, getCollisionBoundingPath, getCollisionBoundsType, getConstraints, getConstraintsAffectingLayout, getContentCompressionResistancePriority, getContentHuggingPriority, getContentMode, getContentScaleFactor, getCoordinateSpace, getDirectionalLayoutMargins, getEffectiveUserInterfaceLayoutDirection, getFirstBaselineAnchor, getFocusItemContainer, getFrame, getFrameForAlignmentRect, getGestureRecognizers, getHeightAnchor, getInheritedAnimationDuration, getInteractions, getLastBaselineAnchor, getLayer, getLayerClass, getLayoutGuides, getLayoutMargins, getLayoutMarginsGuide, getLeadingAnchor, getLeftAnchor, getMaskView, getMotionEffects, getParentFocusEnvironment, getPreferredFocusedView, getPreferredFocusEnvironments, getReadableContentGuide, getResizableSnapshot, getRestorationIdentifier, getRightAnchor, getSafeAreaInsets, getSafeAreaLayoutGuide, getSemanticContentAttribute, getSizeThatFits, getSnapshot, getSubviews, getSuperview, getSystemLayoutSizeFittingSize, getSystemLayoutSizeFittingSize, getTag, getTintAdjustmentMode, getTintColor, getTopAnchor, getTrailingAnchor, getTraitCollection, getTransform, getUserInterfaceLayoutDirection, getUserInterfaceLayoutDirection, getViewForBaselineLayout, getViewForFirstBaselineLayout, getViewForLastBaselineLayout, getViewPrintFormatter, getViewWithTag, getWidthAnchor, getWindow, hasAmbiguousLayout, hitTest, insertSubview, insertSubviewAbove, insertSubviewBelow, invalidateIntrinsicContentSize, isAccessibilityIgnoresInvertColors, isDescendantOf, isExclusiveTouch, isFocused, isHidden, isInsetsLayoutMarginsFromSafeArea, isMultipleTouchEnabled, isOpaque, isPointInside, isUserInteractionEnabled, layoutIfNeeded, layoutMarginsDidChange, layoutSublayers, needsUpdateConstraints, NoIntrinsicMetric, performSystemAnimation, performWithoutAnimation, preservesSuperviewLayoutMargins, removeConstraint, removeConstraints, removeFromSuperview, removeGestureRecognizer, removeInteraction, removeLayoutGuide, removeMotionEffect, requiresConstraintBasedLayout, safeAreaInsetsDidChange, sendSubviewToBack, setAccessibilityIdentifier, setAccessibilityIgnoresInvertColors, setAlpha, setAnimationBeginsFromCurrentState, setAnimationCurve, setAnimationDelay, setAnimationDelegate, setAnimationDidStopSelector, setAnimationDurationInSeconds, setAnimationRepeatAutoreverses, setAnimationRepeatCount, setAnimationsEnabled, setAnimationStartDate, setAnimationTransition, setAnimationWillStartSelector, setAutoresizesSubviews, setAutoresizingMask, setBackgroundColor, setBounds, setCenter, setClearsContextBeforeDrawing, setClipsToBounds, setContentCompressionResistancePriority, setContentHuggingPriority, setContentMode, setContentScaleFactor, setDirectionalLayoutMargins, setExclusiveTouch, setFrame, setGestureRecognizers, setHidden, setInsetsLayoutMarginsFromSafeArea, setInteractions, setLayoutMargins, setMaskView, setMotionEffects, setMultipleTouchEnabled, setNeedsDisplay, setNeedsDisplay, setNeedsFocusUpdate, setNeedsLayout, setNeedsUpdateConstraints, setOpaque, setPreservesSuperviewLayoutMargins, setRestorationIdentifier, setSemanticContentAttribute, setTag, setTintAdjustmentMode, setTintColor, setTransform, setTranslatesAutoresizingMaskIntoConstraints, setUserInteractionEnabled, shouldUpdateFocus, sizeToFit, tintColorDidChange, traitCollectionDidChange, transition, transition, translatesAutoresizingMaskIntoConstraints, updateConstraints, updateConstraintsIfNeeded, updateFocusIfNeeded, willDrawLayer, willMoveToSuperview, willMoveToWindow, willRemoveSubview
      • Methods inherited from class org.robovm.apple.uikit.UIResponder

        areAccessibilityElementsHidden, becomeFirstResponder, canBecomeFirstResponder, canPerformAction, canResignFirstResponder, clearTextInputContextIdentifier, getAccessibilityActivationPoint, getAccessibilityAttributedHint, getAccessibilityAttributedLabel, getAccessibilityAttributedValue, getAccessibilityFrame, getAccessibilityHint, getAccessibilityLabel, getAccessibilityLanguage, getAccessibilityNavigationStyle, getAccessibilityPath, getAccessibilityTraits, getAccessibilityValue, getActionTarget, getInputAccessoryView, getInputAccessoryViewController, getInputAssistantItem, getInputView, getInputViewController, getKeyCommands, getNextResponder, getTextInputContextIdentifier, getTextInputMode, getUndoManager, getUserActivity, isAccessibilityElement, isAccessibilityViewModal, isFirstResponder, motionBegan, motionCancelled, motionEnded, pressesBegan, pressesCancelled, pressesChanged, pressesEnded, reloadInputViews, remoteControlReceived, resignFirstResponder, restoreUserActivityState, setAccessibilityActivationPoint, setAccessibilityAttributedHint, setAccessibilityAttributedLabel, setAccessibilityAttributedValue, setAccessibilityElement, setAccessibilityElementsHidden, setAccessibilityFrame, setAccessibilityHint, setAccessibilityLabel, setAccessibilityLanguage, setAccessibilityNavigationStyle, setAccessibilityPath, setAccessibilityTraits, setAccessibilityValue, setAccessibilityViewModal, setShouldGroupAccessibilityChildren, setUserActivity, shouldGroupAccessibilityChildren, touchesBegan, touchesCancelled, touchesEnded, touchesEstimatedPropertiesUpdated, touchesMoved, updateUserActivityState
      • Methods inherited from class org.robovm.apple.foundation.NSObject

        addKeyValueObserver, addKeyValueObserver, autorelease, awakeFromNib, conformsToProtocol, copy, description, didChangeValue, didChangeValue, didChangeValues, equals, getAutoContentAccessingProxy, getClassForCoder, getClassForKeyedArchiver, getKeyValueCoder, getObservationInfo, hash, hashCode, isEqual, isKindOfClass, isMemberOfClass, mutableCopy, performSelector, performSelector, performSelector, performSelector, performSelector, performSelector, performSelector, performSelectorInBackground, performSelectorOnMainThread, performSelectorOnMainThread, performSelectorV, performSelectorV, performSelectorV, release, removeKeyValueObserver, removeKeyValueObservers, respondsToSelector, retain, retainCount, setObservationInfo, toString, willChangeValue, willChangeValue, willChangeValues
      • Methods inherited from class org.robovm.objc.ObjCObject

        addStrongRef, dispose, getAssociatedObject, getObjCClass, logRetainRelease, removeStrongRef, setAssociatedObject, toObjCObject, toObjCObject, updateStrongRef
      • Methods inherited from class org.robovm.rt.bro.NativeObject

        as, getHandle
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • MobileUILayout

        public MobileUILayout​(java.lang.String layoutResource)
        Creates a layout from the given XML-resource without binding context. This can be used for completely static layouts.
        Parameters:
        layoutResource - path of the MobileUI layout within the assets folder
      • MobileUILayout

        public MobileUILayout​(java.lang.String layoutResource,
                              boolean bindToTestObject)
        Creates a layout for a given XML-resource and optionally binds to the testObject that is embedded within the layout XML file.
        Parameters:
        layoutResource - path of the MobileUI layout within the assets folder
        bindToTestObject - flag to enable testObject-binding
      • MobileUILayout

        public MobileUILayout​(java.lang.String layoutResource,
                              java.lang.Object bindingContext)
        Creates a layout from the given XML-resource binding to the given bindingContext. The bindingContext can be any object that implements the properties and methods used in the layout file.
        Parameters:
        layoutResource - path of the MobileUI layout within the assets folder
        bindingContext - object to use as bindingContext for the given layout
      • MobileUILayout

        public MobileUILayout​(org.robovm.apple.uikit.UIViewController viewController,
                              java.lang.String layoutResource,
                              java.lang.Object bindingContext)
        Creates a layout from the given XML-resource binding to the given bindingContext using the given as source for lifecycle events. The bindingContext can be any object that implements the properties and methods used in the layout file.
        Parameters:
        viewController - the UIViewController giving the lifecycle events for a possible LifeCycleAware bindingContext
        layoutResource - path of the MobileUI layout within the assets folder
        bindingContext - object to use as bindingContext for the given layout
    • Method Detail

      • removeFromController

        public void removeFromController()
      • didMoveToWindow

        public void didMoveToWindow()
        Internal API
        Overrides:
        didMoveToWindow in class org.robovm.apple.uikit.UIView
      • getContentView

        public android.view.View<org.robovm.apple.uikit.UIView> getContentView()
        Internal API
        Specified by:
        getContentView in class AbstractViewAdapter
        Returns:
        internal
      • onResourceUpdate

        public void onResourceUpdate​(java.lang.String absoluteResourceName)
        Internal API
        Specified by:
        onResourceUpdate in interface io.nevernull.mobileui.core.ResourceUpdateListener
        Parameters:
        absoluteResourceName - internal
      • firePropertyChanged

        public void firePropertyChanged​(java.lang.String... properties)
        Fire a property change for this layout and bindingContext.
        Specified by:
        firePropertyChanged in interface io.nevernull.mobileui.core.PropertyFireListener
        Parameters:
        properties - list of property names that have been changed
      • getNativeView

        public <T extends org.robovm.apple.uikit.UIView> T getNativeView​(java.lang.String id)
        Returns the UIView that is the delegate of the View carrying the given ID. The ID has been given in the XML file with the id attribute.
        Type Parameters:
        T - This implementation will automatically cast to the return type. Please be aware, that the internal implementation of MobileUI might possibly change, leading to ClassCastException.
        Parameters:
        id - ID as given in the XML file (id attribute)
        Returns:
        the UIView belonging to the View that is marked with the ID or null.
        Throws:
        java.lang.ClassCastException - if you try to assign the result to a wrong type.