text:
<!DOCTYPE html>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<meta content="IE=edge" http-equiv="X-UA-Compatible">

<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
<title>ActivityOptionsCompat - Android SDK | Android Developers</title>

<link rel="stylesheet"
href="http://fonts.googleapis.com/css?family=Roboto+Condensed">
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold"
  title="roboto">

<link href="../../../../../assets/css/default.css?v=7" rel="stylesheet" type="text/css">

<link href="../../../../../assets/css/fullscreen.css" rel="stylesheet" class="fullscreen"
type="text/css">

           Developers

ActivityOptionsCompat - Android SDK

      <form class="dac-header-search-form" onsubmit="return submit_search()">
        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
          onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
          onkeydown="return search_changed(event, true, '../../../../../')"
          onkeyup="return search_changed(event, false, '../../../../../')"
          class="dac-header-search-input" placeholder="Search" />
          close
      </form>

          Developer
          Console

Results

Loading...

           Developers

        Home

            Android

            Wear

            TV

            Auto

        Design

        Develop

            Training

            API Guides

            Reference

            Tools

            Google Services

            Preview

        Distribute

            Google Play

            Essentials

            Get Users

            Engage & Retain

            Earn

            Analyze

            Stories

          API level:

            <select id="apiLevelSelector">

            </select>

Android APIs

  android

  android.accessibilityservice

  android.accounts

  android.animation

  android.annotation

  android.app

  android.app.admin

  android.app.assist

  android.app.backup

  android.app.job

  android.app.usage

  android.appwidget

  android.bluetooth

  android.bluetooth.le

  android.content

  android.content.pm

  android.content.res

  android.database

  android.database.sqlite

  android.databinding

  android.drm

  android.gesture

  android.graphics

  android.graphics.drawable

  android.graphics.drawable.shapes

  android.graphics.pdf

  android.hardware

  android.hardware.camera2

  android.hardware.camera2.params

  android.hardware.display

  android.hardware.fingerprint

  android.hardware.input

  android.hardware.usb

  android.inputmethodservice

  android.location

  android.media

  android.media.audiofx

  android.media.browse

  android.media.effect

  android.media.midi

  android.media.projection

  android.media.session

  android.media.tv

  android.mtp

  android.net

  android.net.http

  android.net.nsd

  android.net.rtp

  android.net.sip

  android.net.wifi

  android.net.wifi.p2p

  android.net.wifi.p2p.nsd

  android.nfc

  android.nfc.cardemulation

  android.nfc.tech

  android.opengl

  android.os

  android.os.storage

  android.preference

  android.print

  android.print.pdf

  android.printservice

  android.provider

  android.renderscript

  android.sax

  android.security

  android.security.keystore

  android.service.carrier

  android.service.chooser

  android.service.dreams

  android.service.media

  android.service.notification

  android.service.restrictions

  android.service.textservice

  android.service.voice

  android.service.wallpaper

  android.speech

  android.speech.tts

  android.support.annotation

  android.support.app.recommendation

  android.support.customtabs

  android.support.design

  android.support.design.widget

  android.support.multidex

  android.support.percent

  android.support.v13.app

  android.support.v14.preference

  android.support.v17.leanback

  android.support.v17.leanback.app

  android.support.v17.leanback.database

  android.support.v17.leanback.graphics

  android.support.v17.leanback.system

  android.support.v17.leanback.widget

  android.support.v17.preference

  android.support.v4.accessibilityservice

  android.support.v4.animation

  android.support.v4.app

  android.support.v4.content

  android.support.v4.content.pm

  android.support.v4.content.res

  android.support.v4.database

  android.support.v4.graphics

  android.support.v4.graphics.drawable

  android.support.v4.hardware.display

  android.support.v4.hardware.fingerprint

  android.support.v4.media

  android.support.v4.media.session

  android.support.v4.net

  android.support.v4.os

  android.support.v4.print

  android.support.v4.provider

  android.support.v4.text

  android.support.v4.util

  android.support.v4.view

  android.support.v4.view.accessibility

  android.support.v4.view.animation

  android.support.v4.widget

  android.support.v7.app

  android.support.v7.appcompat

  android.support.v7.cardview

  android.support.v7.graphics

  android.support.v7.graphics.drawable

  android.support.v7.gridlayout

  android.support.v7.media

  android.support.v7.mediarouter

  android.support.v7.preference

  android.support.v7.recyclerview

  android.support.v7.util

  android.support.v7.view

  android.support.v7.widget

  android.support.v7.widget.helper

  android.support.v7.widget.util

  android.support.v8.renderscript

  android.system

  android.telecom

  android.telephony

  android.telephony.cdma

  android.telephony.gsm

  android.test

  android.test.mock

  android.test.suitebuilder

  android.test.suitebuilder.annotation

  android.text

  android.text.format

  android.text.method

  android.text.style

  android.text.util

  android.transition

  android.util

  android.view

  android.view.accessibility

  android.view.animation

  android.view.inputmethod

  android.view.textservice

  android.webkit

  android.widget

  com.android.internal.backup

  com.android.internal.logging

  com.android.internal.os

  com.android.internal.statusbar

  com.android.internal.widget

  com.android.test.runner

  dalvik.annotation

  dalvik.bytecode

  dalvik.system

  java.awt.font

  java.beans

  java.io

  java.lang

  java.lang.annotation

  java.lang.ref

  java.lang.reflect

  java.math

  java.net

  java.nio

  java.nio.channels

  java.nio.channels.spi

  java.nio.charset

  java.nio.charset.spi

  java.security

  java.security.acl

  java.security.cert

  java.security.interfaces

  java.security.spec

  java.sql

  java.text

  java.util

  java.util.concurrent

  java.util.concurrent.atomic

  java.util.concurrent.locks

  java.util.jar

  java.util.logging

  java.util.prefs

  java.util.regex

  java.util.zip

  javax.crypto

  javax.crypto.interfaces

  javax.crypto.spec

  javax.microedition.khronos.egl

  javax.microedition.khronos.opengles

  javax.net

  javax.net.ssl

  javax.security.auth

  javax.security.auth.callback

  javax.security.auth.login

  javax.security.auth.x500

  javax.security.cert

  javax.sql

  javax.xml

  javax.xml.datatype

  javax.xml.namespace

  javax.xml.parsers

  javax.xml.transform

  javax.xml.transform.dom

  javax.xml.transform.sax

  javax.xml.transform.stream

  javax.xml.validation

  javax.xml.xpath

  junit.framework

  junit.runner

  org.apache.http.conn

  org.apache.http.conn.scheme

  org.apache.http.conn.ssl

  org.apache.http.params

  org.json

  org.w3c.dom

  org.w3c.dom.ls

  org.xml.sax

  org.xml.sax.ext

  org.xml.sax.helpers

  org.xmlpull.v1

  org.xmlpull.v1.sax2

Interfaces

ActionBarDrawerToggle.Delegate

ActionBarDrawerToggle.DelegateProvider

ActivityCompat.OnRequestPermissionsResultCallback

FragmentManager.BackStackEntry

FragmentManager.OnBackStackChangedListener

LoaderManager.LoaderCallbacks

NotificationCompat.Action.Extender

NotificationCompat.Extender

TaskStackBuilder.SupportParentable

Classes

ActionBarDrawerToggle

ActivityCompat

ActivityManagerCompat

ActivityOptionsCompat

AppOpsManagerCompat

AppOpsManagerCompat23

DialogFragment

Fragment

Fragment.SavedState

FragmentActivity

FragmentContainer

FragmentController

FragmentHostCallback

FragmentManager

FragmentPagerAdapter

FragmentStatePagerAdapter

FragmentTabHost

FragmentTransaction

ListFragment

LoaderManager

NavUtils

NotificationCompat

NotificationCompat.Action

NotificationCompat.Action.Builder

NotificationCompat.Action.WearableExtender

NotificationCompat.BigPictureStyle

NotificationCompat.BigTextStyle

NotificationCompat.Builder

NotificationCompat.CarExtender

NotificationCompat.CarExtender.UnreadConversation

NotificationCompat.CarExtender.UnreadConversation.Builder

NotificationCompat.InboxStyle

NotificationCompat.Style

NotificationCompat.WearableExtender

NotificationCompatExtras

NotificationCompatSideChannelService

NotificationManagerCompat

RemoteInput

RemoteInput.Builder

ServiceCompat

ShareCompat

ShareCompat.IntentBuilder

ShareCompat.IntentReader

SharedElementCallback

TaskStackBuilder

Exceptions

Fragment.InstantiationException

      fullscreen
      Use Tree NavigationUse Panel Navigation

Summary:

  Protected Ctors

  | Methods

  | Inherited Methods

| [Expand All]

    public

    class

ActivityOptionsCompat

    extends Object

        java.lang.Object

               ↳

        android.support.v4.app.ActivityOptionsCompat

Class Overview

Helper for accessing features in ActivityOptions
 introduced in API level 16 in a backwards compatible fashion.

Summary

Protected Constructors

        <nobr>

            </nobr>

        <nobr>
        ActivityOptionsCompat()</nobr>

Public Methods

        <nobr>

            static

            ActivityOptionsCompat</nobr>

        <nobr>
        makeCustomAnimation(Context context, int enterResId, int exitResId)</nobr>

          Create an ActivityOptions specifying a custom animation to run when the
 activity is displayed.

        <nobr>

            static

            ActivityOptionsCompat</nobr>

        <nobr>
        makeScaleUpAnimation(View source, int startX, int startY, int startWidth, int startHeight)</nobr>

          Create an ActivityOptions specifying an animation where the new activity is
 scaled from a small originating area of the screen to its final full
 representation.

        <nobr>

            static

            ActivityOptionsCompat</nobr>

        <nobr>
        makeSceneTransitionAnimation(Activity activity, View sharedElement, String sharedElementName)</nobr>

          Create an ActivityOptions to transition between Activities using cross-Activity scene
 animations.

        <nobr>

            static

            ActivityOptionsCompat</nobr>

        <nobr>
        <a href="../../../../../reference/android/support/v4/app/ActivityOptionsCompat.html#makeSceneTransitionAnimation(android.app.Activity, android.support.v4.util.Pair<android.view.View, java.lang.String>...)">makeSceneTransitionAnimation(Activity activity, Pair...<View, String> sharedElements)</nobr>

          Create an ActivityOptions to transition between Activities using cross-Activity scene
 animations.

        <nobr>

            static

            ActivityOptionsCompat</nobr>

        <nobr>
        makeThumbnailScaleUpAnimation(View source, Bitmap thumbnail, int startX, int startY)</nobr>

          Create an ActivityOptions specifying an animation where a thumbnail is
 scaled from a given position to the new activity window that is being
 started.

        <nobr>

            Bundle</nobr>

        <nobr>
        toBundle()</nobr>

          Returns the created options as a Bundle, which can be passed to
 startActivity(android.app.Activity, android.content.Intent, android.os.Bundle).

        <nobr>

            void</nobr>

        <nobr>
        update(ActivityOptionsCompat otherOptions)</nobr>

          Update the current values in this ActivityOptions from those supplied in
 otherOptions.

  [Expand]

Inherited Methods

From class

  java.lang.Object

        <nobr>

            Object</nobr>

        <nobr>
        clone()</nobr>

          Creates and returns a copy of this Object.

        <nobr>

            boolean</nobr>

        <nobr>
        equals(Object o)</nobr>

          Compares this instance with the specified object and indicates if they
 are equal.

        <nobr>

            void</nobr>

        <nobr>
        finalize()</nobr>

          Invoked when the garbage collector has detected that this instance is no longer reachable.

        <nobr>

            final

            Class<?></nobr>

        <nobr>
        getClass()</nobr>

          Returns the unique instance of Class that represents this
 object's class.

        <nobr>

            int</nobr>

        <nobr>
        hashCode()</nobr>

          Returns an integer hash code for this object.

        <nobr>

            final

            void</nobr>

        <nobr>
        notify()</nobr>

          Causes a thread which is waiting on this object's monitor (by means of
 calling one of the wait() methods) to be woken up.

        <nobr>

            final

            void</nobr>

        <nobr>
        notifyAll()</nobr>

          Causes all threads which are waiting on this object's monitor (by means
 of calling one of the wait() methods) to be woken up.

        <nobr>

            String</nobr>

        <nobr>
        toString()</nobr>

          Returns a string containing a concise, human-readable description of this
 object.

        <nobr>

            final

            void</nobr>

        <nobr>
        wait()</nobr>

          Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object.

        <nobr>

            final

            void</nobr>

        <nobr>
        wait(long millis, int nanos)</nobr>

          Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object or until the
 specified timeout expires.

        <nobr>

            final

            void</nobr>

        <nobr>
        wait(long millis)</nobr>

          Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object or until the
 specified timeout expires.

Protected Constructors

        protected

      ActivityOptionsCompat
      ()

Public Methods

        public
        static

        ActivityOptionsCompat

      makeCustomAnimation
      (Context context, int enterResId, int exitResId)

Create an ActivityOptions specifying a custom animation to run when the
 activity is displayed.

Parameters

          context
          Who is defining this. This is the application that the
 animation resources will be loaded from.

          enterResId
          A resource ID of the animation resource to use for the
 incoming activity. Use 0 for no animation.

          exitResId
          A resource ID of the animation resource to use for the
 outgoing activity. Use 0 for no animation.

Returns

Returns a new ActivityOptions object that you can use to supply
 these options as the options Bundle when starting an activity.

        public
        static

        ActivityOptionsCompat

      makeScaleUpAnimation
      (View source, int startX, int startY, int startWidth, int startHeight)

Create an ActivityOptions specifying an animation where the new activity is
 scaled from a small originating area of the screen to its final full
 representation.

 If the Intent this is being used with has not set its
 setSourceBounds(android.graphics.Rect),
 those bounds will be filled in for you based on the initial bounds passed
 in here.

Parameters

          source
          The View that the new activity is animating from. This
 defines the coordinate space for startX and startY.

          startX
          The x starting location of the new activity, relative to
 source.

          startY
          The y starting location of the activity, relative to source.

          startWidth
          The initial width of the new activity.

          startHeight
          The initial height of the new activity.

Returns

Returns a new ActivityOptions object that you can use to supply
 these options as the options Bundle when starting an activity.

        public
        static

        ActivityOptionsCompat

      makeSceneTransitionAnimation
      (Activity activity, View sharedElement, String sharedElementName)

Create an ActivityOptions to transition between Activities using cross-Activity scene
 animations. This method carries the position of one shared element to the started Activity.
 The position of sharedElement will be used as the epicenter for the
 exit Transition. The position of the shared element in the launched Activity will be the
 epicenter of its entering Transition.

This requires FEATURE_CONTENT_TRANSITIONS to be
 enabled on the calling Activity to cause an exit transition. The same must be in
 the called Activity to get an entering transition.

Parameters

          activity
          The Activity whose window contains the shared elements.

          sharedElement
          The View to transition to the started Activity. sharedElement must
                      have a non-null sharedElementName.

          sharedElementName
          The shared element name as used in the target Activity. This may
                          be null if it has the same name as sharedElement.

Returns

Returns a new ActivityOptions object that you can use to
         supply these options as the options Bundle when starting an activity.

<A NAME="makeSceneTransitionAnimation(android.app.Activity, android.support.v4.util.Pair<android.view.View, java.lang.String>...)">

        public
        static

        ActivityOptionsCompat

      makeSceneTransitionAnimation
      (Activity activity, Pair...<View, String> sharedElements)

Create an ActivityOptions to transition between Activities using cross-Activity scene
 animations. This method carries the position of multiple shared elements to the started
 Activity. The position of the first element in sharedElements
 will be used as the epicenter for the exit Transition. The position of the associated
 shared element in the launched Activity will be the epicenter of its entering Transition.

This requires FEATURE_CONTENT_TRANSITIONS to be
 enabled on the calling Activity to cause an exit transition. The same must be in
 the called Activity to get an entering transition.

Parameters

          activity
          The Activity whose window contains the shared elements.

          sharedElements
          The names of the shared elements to transfer to the called
                       Activity and their associated Views. The Views must each have
                       a unique shared element name.

Returns

Returns a new ActivityOptions object that you can use to
         supply these options as the options Bundle when starting an activity.

        public
        static

        ActivityOptionsCompat

      makeThumbnailScaleUpAnimation
      (View source, Bitmap thumbnail, int startX, int startY)

Create an ActivityOptions specifying an animation where a thumbnail is
 scaled from a given position to the new activity window that is being
 started.

 If the Intent this is being used with has not set its
 setSourceBounds(android.graphics.Rect),
 those bounds will be filled in for you based on the initial thumbnail
 location and size provided here.

Parameters

          source
          The View that this thumbnail is animating from. This
 defines the coordinate space for startX and startY.

          thumbnail
          The bitmap that will be shown as the initial thumbnail
 of the animation.

          startX
          The x starting location of the bitmap, relative to source.

          startY
          The y starting location of the bitmap, relative to source.

Returns

Returns a new ActivityOptions object that you can use to supply
 these options as the options Bundle when starting an activity.

        public

        Bundle

      toBundle
      ()

Returns the created options as a Bundle, which can be passed to
 startActivity(android.app.Activity, android.content.Intent, android.os.Bundle).
 Note that the returned Bundle is still owned by the ActivityOptions
 object; you must not modify it, but can supply it to the startActivity
 methods that take an options Bundle.

        public

        void

      update
      (ActivityOptionsCompat otherOptions)

Update the current values in this ActivityOptions from those supplied in
 otherOptions. Any values defined in otherOptions replace those in the
 base options.

        Get news & tips

          Blog
          Support

  Except as noted, this content is licensed under Apache 2.0.
  For details and restrictions, see the
  Content License.

    Android 6.0 r1 —

      About Android
      Auto
      TV
      Wear
      Legal

        <select name="language" onchange="changeLangPref(this.value, true)">
          <option value="en" selected="selected">English</option>
          <option value="es">Español</option>
          <option value="ja">日本語</option>
          <option value="ko">한국어</option>
          <option value="pt-br">Português Brasileiro</option>
          <option value="ru">Русский</option>
          <option value="zh-cn">中文(简体)</option>
          <option value="zh-tw">中文(繁體)</option>
        </select>

        <button class="dac-modal-header-close" data-modal-toggle></button>

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

          <form action="https://docs.google.com/forms/d/1QgnkzbEJIDu9lMEea0mxqWrXUJu0oBCLD7ar23V0Yys/formResponse" class="dac-form" method="post" target="dac-newsletter-iframe">

              <fieldset class="dac-form-fieldset">

                      Full name
                      <input type="text" class="dac-form-input" name="entry.1357890476" id="newsletter-full-name" required>
                      *

                      Email address
                      <input type="email" class="dac-form-input" name="entry.472100832" id="newsletter-email" required>
                      *

                      Company / developer name
                      <input type="text" class="dac-form-input" name="entry.1664780309" id="newsletter-company">

                      One of your Play Store app URLs
                      <input type="url" class="dac-form-input" name="entry.47013838" id="newsletter-play-store" required>
                      *

              </fieldset>
              <fieldset class="dac-form-fieldset">

                    <legend class="dac-form-legend">Which best describes your business:*
                    </legend>

                      <input type="radio" value="Apps" class="dac-form-radio" name="entry.1796324055" id="newsletter-business-type-app" required>

                      Apps

                      <input type="radio" value="Games" class="dac-form-radio" name="entry.1796324055" id="newsletter-business-type-games" required>

                      Games

                      <input type="radio" value="Apps and Games" class="dac-form-radio" name="entry.1796324055" id="newsletter-business-type-appsgames" required>

                      Apps & Games

                          <input type="checkbox" class="dac-form-checkbox" name="entry.732309842" id="newsletter-add" required value="Add me to the mailing list for the monthly newsletter and occasional emails about development and Google Play opportunities.">

                          Add me to the mailing list for the monthly newsletter and occasional emails about development and Google Play opportunities.*

                          <input type="checkbox" class="dac-form-checkbox" name="entry.2045036090" id="newsletter-terms" required value="I acknowledge that the information provided in this form will be subject to Google's privacy policy (https://www.google.com/policies/privacy/).">

                          I acknowledge that the information provided in this form will be subject to Google's privacy policy.*

              </fieldset>

              <button type="submit" value="Submit" class="dac-fab dac-primary dac-large dac-modal-action"></button>

          </form>

              You have successfully signed up for the latest Android developer news and tips.


text:
package com.intellij.openapi.roots.ui.configuration.libraryEditor;

import com.intellij.ide.util.treeView.NodeDescriptor;
import com.intellij.openapi.roots.OrderRootType;

class SourcesElement extends LibraryTableTreeContentElement {
    private final LibraryElement myParent;

    public SourcesElement(LibraryElement parent) {
      myParent = parent;
    }

    public LibraryElement getParent() {
      return myParent;
    }

  public OrderRootType getOrderRootType() {
    return OrderRootType.SOURCES;
  }

  public NodeDescriptor createDescriptor(final NodeDescriptor parentDescriptor, final LibraryTableEditor parentEditor) {
    return new SourcesElementDescriptor(parentDescriptor, this);
  }

  public boolean equals(Object o) {
      if (this == o) return true;
      if (!(o instanceof SourcesElement)) return false;

      final SourcesElement sourcesElement = (SourcesElement)o;

      if (!myParent.equals(sourcesElement.myParent)) return false;

      return true;
    }

    public int hashCode() {
      return myParent.hashCode();
    }
  }

redpajama_set_name: RedPajamaGithub


text:
import * as classNames from 'classnames';
import * as React from 'react';

import { Bulma, withHelpersModifiers } from './../../bulma';

export interface Card<T> extends Bulma.Tag, React.HTMLProps<T> { }

export function Card({ tag = 'div', ...props }: Card<HTMLElement>) {
    const className = classNames('card', props.className);

    return React.createElement(tag, { ...props, className });
}

const HOC = /*@__PURE__*/withHelpersModifiers(Card);
export default HOC;


text:
module AST.Type.Scalar where

-- naming conventions:
--  Scalar[Integer | Double | Char | Float], the types in [] indicating
--  the type in OpenCL
--  All the underlying data type is Double(Haskell)

data Scalar = ScalarInteger Integer
            | ScalarDouble  Double
            | ScalarChar    Char
            | ScalarFloat   Float
            deriving (Show, Eq)

data ScalarType = ScalarTypeInteger
                | ScalarTypeDouble
                | ScalarTypeChar
                | ScalarTypeFloat
                deriving (Show, Eq)

typeOfScalar :: Scalar -> ScalarType
typeOfScalar (ScalarInteger scalar)     = ScalarTypeInteger
typeOfScalar (ScalarDouble  scalar)     = ScalarTypeDouble
typeOfScalar (ScalarFloat   scalar)     = ScalarTypeFloat
typeOfScalar (ScalarChar    scalar)     = ScalarTypeChar


text:
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    [[NSNotificationCenter defaultCenter] removeObserver:self name:kAnimatorClientIRSearch object:nil];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:kAnimatorClientHotspotClicked object:nil];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:kAnimatorClientHotspotOptionClicked object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(animatorIRSearchResponse:) name:kAnimatorClientIRSearch object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(animatorHotspotClicked:) name:kAnimatorClientHotspotClicked object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(animatorHotspotOptionClicked:) name:kAnimatorClientHotspotOptionClicked object:nil];

    [[AnimatorClient sharedClient] setLanguage:eAnimatorLanguageEnglish];

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)openCameraButtonAction:(id)sender {
    [[AnimatorClient sharedClient] showCameraScreen];
}

- (IBAction)selectLanguageButtonAction:(id)sender {
    UIAlertController *actionSheetAC = [UIAlertController alertControllerWithTitle:@"Change Language" message:nil preferredStyle:UIAlertControllerStyleActionSheet];
    [actionSheetAC addAction:[UIAlertAction actionWithTitle:@"English" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        [[AnimatorClient sharedClient] setLanguage:eAnimatorLanguageEnglish];
        [self.langBtn setTitle:@"English" forState:UIControlStateNormal];
    }]];
    [actionSheetAC addAction:[UIAlertAction actionWithTitle:@"Spanish" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        [[AnimatorClient sharedClient] setLanguage:eAnimatorLanguageSpanish];
        [self.langBtn setTitle:@"Spanish" forState:UIControlStateNormal];
    }]];
    [actionSheetAC addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {

    }]];
    [self presentViewController:actionSheetAC animated:YES completion:nil];
}

- (void)animatorIRSearchResponse:(NSNotification *)notification {
    NSLog(@"match received : %@",[notification.userInfo objectForKey:kAnimatorIsMatchFound]);
}

- (void)animatorHotspotClicked:(NSNotification *)notification {
    NSLog(@"hotspot clicked : %@",notification.userInfo);
}

- (void)animatorHotspotOptionClicked:(NSNotification *)notification {
    NSLog(@"hotspot option clicked : %@",notification.userInfo);
    if([notification.userInfo[kAnimatorClickedHotspotOption] isEqualToString:@"Buy it now"] ||
       [notification.userInfo[kAnimatorClickedHotspotOption] isEqualToString:@"Comprar"] ){
        NSString* urlStr = notification.userInfo[kAnimatorClickedHotspotOptionValue];
        NSURL* the_url = [NSURL URLWithString:urlStr];
        SFSafariViewController *svc = [[SFSafariViewController alloc] initWithURL:the_url];
        [(UINavigationController*)[[UIApplication sharedApplication].keyWindow.rootViewController presentedViewController] pushViewController:svc animated:YES];
    }
}

@end


text:
var gulp = require('gulp');
var sass = require('gulp-sass');
var postcss = require('gulp-postcss');
var autoprefixer = require('autoprefixer');
var sourcemaps = require('gulp-sourcemaps');
var concat = require('gulp-concat');
var nano = require('gulp-cssnano');

/* local vars */
var sources = ['./src/main/java/camber/client/sass/camber.scss'];
//var sources = ['./src/main/java/camber/client/**/*.scss', './src/main/java/camber/client/**/*.css'];
var autoprefixVersions = 'last 2 versions';
var outputLocation = 'src/main/java/camber/public/css/';
var outputFile = 'camber.min.css';

/* For Dev (with source maps) */

gulp.task('default', ['dev', 'watch']);

gulp.task('watch', function () {
    gulp.watch(sources, ['dev']);
});

gulp.task('dev', function () {
    gulp.src(sources)
        .pipe(sourcemaps.init())
        .pipe(sass().on('error', sass.logError))
        .pipe(postcss([ autoprefixer({ browsers: [autoprefixVersions] }) ]))
        .pipe(concat(outputFile))
        .pipe(nano({"zindex": false, "reduceIdents": false}))
        .pipe(sourcemaps.write())
        .pipe(gulp.dest(outputLocation));
});

/* For Deploy (no source maps) */

gulp.task('deploy', function () {
    gulp.src(sources)
        .pipe(sass().on('error', sass.logError))
        .pipe(postcss([ autoprefixer({ browsers: [autoprefixVersions] }) ]))
        .pipe(concat(outputFile))
        .pipe(nano({"zindex": false, "reduceIdents": false}))
        .pipe(gulp.dest(outputLocation));
});


text:
import urllib
import boto
from oyster.conf import settings

class S3Storage(object):
    storage_type = 's3'

    def __init__(self, kernel):
        self.kernel = kernel
        self.s3conn = boto.connect_s3(settings.AWS_KEY, settings.AWS_SECRET)
        self._bucket = False

    @property
    def bucket(self):
        if not self._bucket:
            self._bucket = self.s3conn.get_bucket(settings.AWS_BUCKET)
        return self._bucket

    def _get_opt(self, doc_class, setting, default=None):
        """ doc_class first, then setting, then default """
        return self.kernel.doc_classes[doc_class].get(setting,
                                          getattr(settings, setting, default))

    def put(self, tracked_doc, data, content_type):
        """ upload the document to S3 """
        aws_prefix = self._get_opt(tracked_doc['doc_class'], 'AWS_PREFIX', '')
        aws_bucket = self._get_opt(tracked_doc['doc_class'], 'AWS_BUCKET')
        k = boto.s3.key.Key(self.bucket)
        key_name = aws_prefix + tracked_doc['_id']
        k.key = key_name
        headers = {'x-amz-acl': 'public-read',
                   'Content-Type': content_type}
        k.set_contents_from_string(data, headers=headers)
        # can also set metadata if we want, useful?

        url = 'http://%s.s3.amazonaws.com/%s' % (aws_bucket, key_name)
        return url

    def get(self, id):
        # could use get_contents_as_string, any advantages?
        return urllib.urlopen(id).read()


text:
package com.hazelcast.collection.impl.set;

import com.hazelcast.collection.ISet;
import com.hazelcast.collection.LocalSetStats;
import com.hazelcast.collection.impl.collection.AbstractCollectionProxyImpl;
import com.hazelcast.config.CollectionConfig;
import com.hazelcast.spi.impl.NodeEngine;

public class SetProxyImpl<E> extends AbstractCollectionProxyImpl<SetService, E> implements ISet<E> {

    public SetProxyImpl(String name, NodeEngine nodeEngine, SetService service) {
        super(name, nodeEngine, service);
    }

    @Override
    protected CollectionConfig getConfig(NodeEngine nodeEngine) {
        return nodeEngine.getConfig().findSetConfig(name);
    }

    @Override
    public String getServiceName() {
        return SetService.SERVICE_NAME;
    }

    @Override
    public LocalSetStats getLocalSetStats() {
        return getService().getLocalCollectionStats(name);
    }
}


text:
// Configure gulp scripts
// Output application name
var appName = 'csWebApp';
var path2csWeb = '../';

var gulp          = require('gulp'),
    del           = require('del'),
    insert        = require('gulp-insert'),
    uglify        = require('gulp-uglify'),
    useref        = require('gulp-useref'),
    rename        = require('gulp-rename'),
    debug         = require('gulp-debug'),
    cache         = require('gulp-cached'),
    concat        = require('gulp-concat'),
    plumber       = require('gulp-plumber'),
    watch         = require('gulp-watch'),
    gulpif        = require('gulp-if'),
    exec          = require('child_process').exec,
    templateCache = require('gulp-angular-templatecache'),
    deploy        = require('gulp-gh-pages');

gulp.task('clean', function(cb) {
    // NOTE Careful! Removes all generated javascript files and certain folders.
    del([
        path2csWeb + 'csServerComp/ServerComponents/**/*.js',
        path2csWeb + 'csComp/js/**',
        'public/cs/**',
        'dist',
        'ServerComponents/**',
        'services/**',
        path2csWeb + 'test/csComp/**/*.js'
    ], { force: true }, cb);
});

gulp.task('deploy-githubpages', function() {
    return gulp.src("./dist/**/*")
        .pipe(deploy({
            branch:'master',
            cacheDir : '.deploy'
        }))
});

gulp.task('built_csComp', function() {
    return gulp.src(path2csWeb + 'csComp/js/**/*.js')
        // .pipe(debug({
        //     title: 'built_csComp:'
        // }))
        // .pipe(debug({title: 'before ordering:'}))
        // .pipe(order([
        //     "translations/locale-nl.js"
        // ]))
        // .pipe(debug({title: 'after ordering:'}))
        .pipe(concat('csComp.js'))
        .pipe(gulp.dest('./public/cs/js'));
});

gulp.task('compile_all', function() {
    exec('cd ' + path2csWeb + 'csServerComp && tsc');
    exec('cd ' + path2csWeb + 'csComp && tsc');
    exec('tsc');
    exec('cd ' + path2csWeb + 'test && tsc');
    //exec('gulp all');
    //return exec('cd ' + path2csWeb + 'test/csComp && karma');
});

//gulp.task('built', ['compile_all', 'default']);

gulp.task('copy_csServerComp', function() {
    return gulp.src(path2csWeb + 'csServerComp/ServerComponents/**/*.js')
        //.pipe(concat('csServerComp.js'))
        .pipe(gulp.dest('./ServerComponents'));
});

gulp.task('built_csServerComp.d.ts', function() {
    gulp.src(path2csWeb + 'csServerComp/ServerComponents/**/*.d.ts')
        .pipe(plumber())
        //  .pipe(concat('csServerComp.d.ts'))
        .pipe(gulp.dest('./ServerComponents'));
    //.pipe(gulp.dest('./public/cs/js'));
    gulp.src(path2csWeb + 'csServerComp/ServerComponents/**/*.d.ts')
        .pipe(gulp.dest(path2csWeb + 'test/Scripts/typings/cs'));
});

gulp.task('copy_csServerComp_scripts', function() {
    return gulp.src(path2csWeb + 'csServerComp/Scripts/**/*.ts')
        //.pipe(concat('csComp.js'))
        .pipe(gulp.dest('./Scripts'));
});

gulp.task('copy_example_scripts', function() {
    return gulp.src('./Scripts/**/*.ts')
        .pipe(gulp.dest(path2csWeb + 'test/Scripts'));
});

gulp.task('built_csComp_classes', function() {
    return gulp.src(path2csWeb + 'csComp/classes/**/*.ts')
        // .pipe(debug({
        //     title: 'built_csComp_classes:'
        // }))
        // .pipe(debug({title: 'before ordering:'}))
        // .pipe(order([
        //     "translations/locale-nl.js"
        // ]))
        // .pipe(debug({title: 'after ordering:'}))
        .pipe(concat('csCompClasses.ts'))
        .pipe(gulp.dest(path2csWeb + 'csServerComp/classes'));
});

gulp.task('built_csComp.d.ts', function() {
    gulp.src(path2csWeb + 'csComp/js/**/*.d.ts')
        // .pipe(debug({title: 'before ordering:'}))
        // .pipe(order([
        //     "translations/locale-nl.js"
        // ]))
        // .pipe(debug({title: 'after ordering:'}))
        .pipe(plumber())
        .pipe(concat('csComp.d.ts'))
        .pipe(insert.prepend('/// <reference path="../leaflet/leaflet.d.ts" />\r\n'))
        .pipe(insert.prepend('/// <reference path="../crossfilter/crossfilter.d.ts" />\r\n'))
        .pipe(gulp.dest('Scripts/typings/cs'));
    gulp.src('./Scripts/typings/cs/csComp.d.ts')
        .pipe(gulp.dest(path2csWeb + 'test/Scripts/typings/cs'));
});

gulp.task('create_templateCache', function() {
    console.log('Creating templateCache.')
    var options = {
        module: appName,
        filename: 'csTemplates.js'
    }

    gulp.src(path2csWeb + 'csComp/**/*.tpl.html')
        // .pipe(debug({
        //     title: 'create_templateCache:'
        // }))
        .pipe(templateCache(options))
        .pipe(gulp.dest('public/cs/js'))
})

gulp.task('gh_pages', function() {
    // Create a distribution for the GitHub Pages.
    // Basically the same as the create_dist function, except that a different output folder is used.
    // http://yeoman.io/learning/deployment.html
    console.log('Creating distribution for GitHub Pages');
    console.log('Use the following command to push the gh_pages folder to gh-pages.');
    console.log('git subtree push --prefix example/gh_pages origin gh-pages');
    gulp.src('public/images/**/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./gh_pages/images/'));

    gulp.src('public/favicon.*')
        .pipe(plumber())
        .pipe(gulp.dest('./gh_pages'));

    gulp.src('public/bower_components/angular-utils-pagination/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./gh_pages/bower_components/angular-utils-pagination/'));

    gulp.src(path2csWeb + 'csComp/includes/images/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./gh_pages/cs/images/'));

    gulp.src('public/data/**/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./gh_pages/data/'));

    gulp.src('public/cs/css/ROsanswebtextregular.ttf')
        .pipe(plumber())
        .pipe(gulp.dest('./gh_pages/css/'));

    gulp.src('public/cs/js/cesium.js')
        .pipe(plumber())
        .pipe(gulp.dest('./gh_pages/cs/js/'));

    gulp.src('public/bower_components/Font-Awesome/fonts/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./gh_pages/fonts/'));

    var assets = useref.assets();

    return gulp.src('./public/*.html')
        .pipe(assets)
        .pipe(assets.restore())
        .pipe(useref())
        .pipe(gulp.dest('./gh_pages/'));
});

gulp.task('create_dist', function() {
    gulp.src('public/images/**/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/public/images/'));

    gulp.src('public/bower_components/angular-utils-pagination/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/public/bower_components/angular-utils-pagination/'));

    gulp.src(path2csWeb + 'csComp/includes/images/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/public/cs/images/'));

    gulp.src('public/data/**/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/public/data/'));

    gulp.src('public/cs/css/ROsanswebtextregular.ttf')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/public/css/'));

    gulp.src('public/cs/js/cesium.js')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/public/cs/js/'));

    gulp.src('public/bower_components/Font-Awesome/fonts/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/public/fonts/'));

    var assets = useref.assets();

    return gulp.src('./public/*.html')
        .pipe(assets)
        .pipe(assets.restore())
        .pipe(useref())
        .pipe(gulp.dest('./dist/public/'));
});

gulp.task('create_dist_of_server', function() {
    gulp.src('node_modules/express/**/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/node_modules/express/'));
    gulp.src('node_modules/body-parser/**/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/node_modules/body-parser/'));
    gulp.src('node_modules/serve-favicon/**/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/node_modules/serve-favicon/'));
    gulp.src('node_modules/rootpath/**/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/node_modules/rootpath/'));
    gulp.src('node_modules/proj4/**/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/node_modules/proj4/'));
    gulp.src('node_modules/socket.io/**/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/node_modules/socket.io/'));
    gulp.src('node_modules/chokidar/**/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/node_modules/chokidar/'));
    gulp.src('node_modules/pg/**/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/node_modules/pg/'));
    gulp.src('ServerComponents/**/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/ServerComponents/'));
    gulp.src('server.js')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/'));
    gulp.src('configuration.json')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/'));
    gulp.src('./public/favicon.ico')
        .pipe(plumber())
        .pipe(gulp.dest('./dist/public/'));
});

gulp.task('create_dist_of_client_and_server', ['create_dist', 'create_dist_of_server']);

gulp.task('minify_csComp', function() {
    // gulp.src(path2csWeb + 'csComp/dist/csComp.js')
    //    .pipe(plumber())
    //    .pipe(gulp.dest('public/js/cs'));
    gulp.src('public/js/cs/csComp.js')
        .pipe(plumber())
        .pipe(uglify())
        .pipe(rename({
            suffix: '.min'
        }))
        .pipe(gulp.dest('public/cs/js'));
});

gulp.task('include_js', function() {
    gulp.src(path2csWeb + 'csComp/includes/js/**/*.*')
        // .pipe(debug({
        //     title: 'include_js:'
        // }))
        .pipe(plumber())
        .pipe(gulp.dest('./public/cs/js'));
});

gulp.task('include_css', function() {
    gulp.src(path2csWeb + 'csComp/includes/css/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./public/cs/css'));
});

gulp.task('include_images', function() {
    gulp.src(path2csWeb + 'csComp/includes/images/*.*')
        .pipe(plumber())
        .pipe(gulp.dest('./public/cs/images/'));
});

gulp.task('watch', function() {
    gulp.watch(path2csWeb + 'csServerComp/ServerComponents/**/*.js', ['copy_csServerComp']);
    gulp.watch(path2csWeb + 'csServerComp/Scripts/**/*.ts', ['copy_csServerComp_scripts']);
    gulp.watch(path2csWeb + 'csServerComp/ServerComponents/**/*.d.ts', ['built_csServerComp.d.ts']);

    gulp.watch(path2csWeb + 'csComp/js/**/*.js', ['built_csComp']);
    gulp.watch(path2csWeb + 'csComp/js/**/*.d.ts', ['built_csComp.d.ts']);
    gulp.watch(path2csWeb + 'csComp/**/*.tpl.html', ['create_templateCache']);
    gulp.watch(path2csWeb + 'csComp/includes/**/*.css', ['include_css']);
    gulp.watch(path2csWeb + 'csComp/includes/**/*.js', ['include_js']);
    gulp.watch(path2csWeb + 'csComp/includes/images/*.*', ['include_images']);
});

gulp.task('all', ['create_templateCache', 'copy_csServerComp', 'built_csServerComp.d.ts', 'copy_csServerComp_scripts', 'built_csComp', 'built_csComp.d.ts', 'include_css', 'include_js', 'include_images', 'copy_example_scripts']);

gulp.task('deploy', ['create_dist','deploy-githubpages']);

gulp.task('default', ['all', 'watch']);


text:
package com.haxademic.core.draw.context;

import com.haxademic.core.app.P;
import com.jogamp.opengl.GL;
import com.jogamp.opengl.GL2;
import com.jogamp.opengl.GL3;
import com.jogamp.opengl.GL4;
import com.jogamp.opengl.GLProfile;

import processing.core.PConstants;
import processing.core.PGraphics;
import processing.opengl.PGraphicsOpenGL;
import processing.opengl.PJOGL;
import processing.opengl.Texture;

public class OpenGLUtil {

	public static final int SMOOTH_NONE = 0;
	public static final int SMOOTH_LOW = 2;
	public static final int SMOOTH_DEFAULT = 3;
	public static final int SMOOTH_MEDIUM = 4;
	public static final int SMOOTH_HIGH = 8;

	public static final int GL_QUALITY_LOW = 0;
	public static final int GL_QUALITY_MEDIUM = 1;
	public static final int GL_QUALITY_HIGH = 2;

	public static void setTextureRepeat(PGraphics pg) {
		pg.textureWrap(Texture.REPEAT);
	}

	public static void setQuality(PGraphics pg, int quality) {
		//		pg.hint(p.DISABLE_DEPTH_SORT);
		GL4 gl = getGL4(pg);
//		GL gl = ((PJOGL)pg.beginPGL()).gl.getGL();
		switch ( quality ) {
			case GL_QUALITY_LOW :
//				p.hint(P.DISABLE_OPENGL_2X_SMOOTH);
				gl.glHint (GL4.GL_LINE_SMOOTH_HINT, GL4.GL_FASTEST);
				gl.glHint (GL4.GL_POINT, GL.GL_FASTEST);
				gl.glHint (GL4.GL_POLYGON_SMOOTH_HINT, GL.GL_FASTEST);
//				gl.glHint (GL.GL_POLYGON_SMOOTH_HINT, GL.GL_FASTEST);
				gl.glDisable(GL4.GL_LINE_SMOOTH);
				break;
			case GL_QUALITY_MEDIUM :
//				p.hint(P.ENABLE_OPENGL_2X_SMOOTH);
				gl.glHint (GL4.GL_LINE_SMOOTH_HINT, GL4.GL_FASTEST);
//				gl.glHint (GL4.GL_POINT_SMOOTH_HINT, GL4.GL_FASTEST);
				gl.glHint (GL4.GL_POLYGON_SMOOTH_HINT, GL4.GL_FASTEST);
				gl.glDisable(GL4.GL_LINE_SMOOTH);
				break;
			case GL_QUALITY_HIGH :
				gl.glHint (GL4.GL_LINE_SMOOTH_HINT, GL4.GL_NICEST);
//				gl.glHint (GL4.GL_POINT_SMOOTH_HINT, GL4.GL_NICEST);
				gl.glHint (GL4.GL_POLYGON_SMOOTH, GL4.GL_NICEST);
				gl.glEnable (GL4.GL_LINE_SMOOTH);
				break;
		}
	}

	public static void listAvailableProfiles() {
		String profiles[] = GLProfile.GL_PROFILE_LIST_ALL;
		for (int i = 0; i < profiles.length; i++) {
			P.println("Profile ", i, profiles[i], GLProfile.isAvailable(profiles[i]));
		}
	}

	public static void printProfile(PGraphics pg) {
		P.println("GLProfile = ", getGlVersion(pg));
	}

	public static String getGlVersion(PGraphics pg) {
		PJOGL pjogl = (PJOGL) pg.beginPGL();
		return pjogl.gl.getGLProfile().getName();
	}

	public static GL3 getGL3(PGraphics pg) {
		return (GL3) ((PJOGL) pg.beginPGL()).gl.getGL3();
	}

	public static GL4 getGL4(PGraphics pg) {
		return (GL4) ((PJOGL) pg.beginPGL()).gl.getGL4();
	}

	// from: https://github.com/processing/processing/wiki/Advanced-OpenGL

	public static void setTextureQualityLow(PGraphics pg) {
	    pg.hint(P.DISABLE_TEXTURE_MIPMAPS);
	    ((PGraphicsOpenGL)pg).textureSampling(2);
	}

	public static void setTextureQualityHigh(PGraphics pg) {
		pg.hint(P.ENABLE_TEXTURE_MIPMAPS);
		((PGraphicsOpenGL)pg).textureSampling(5);
	}

	public static void optimize2D(PGraphics pg) {
		pg.hint(PConstants.DISABLE_DEPTH_SORT);
		pg.hint(PConstants.DISABLE_DEPTH_TEST);
		pg.hint(PConstants.DISABLE_DEPTH_MASK);
		// pg.hint(PConstants.DISABLE_OPTIMIZED_STROKE); // not helpful
	}

	public enum Blend {
		DEFAULT,
		ADDITIVE,
		ADD_SATURATE,
		ALPHA_REVEAL,
		DARK_INVERSE,
		LIGHT_ADD,
		SATURATE
	}

	public static void setBlending(PGraphics pg, boolean isBlending) {
		GL gl = ((PJOGL)pg.beginPGL()).gl.getGL();
		if( isBlending == true )
			gl.glEnable( GL.GL_BLEND );
		else
			gl.glDisable( GL.GL_BLEND );
	}

	// See: http://www.andersriggelsen.dk/glblendfunc.php
	// Also: https://threejs.org/examples/webgl_materials_blending_custom.html#
	public static void setBlendMode(PGraphics pg, Blend blendMode) {
		GL gl = ((PJOGL)pg.beginPGL()).gl.getGL();
		switch ( blendMode ) {
			case DEFAULT :
				gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA);
				gl.glBlendEquation(GL.GL_FUNC_ADD);
				break;
			case ADD_SATURATE :
				gl.glBlendFunc(GL.GL_SRC_COLOR, GL.GL_SRC_COLOR);
				gl.glBlendEquation(GL.GL_FUNC_ADD);
				break;
			case ADDITIVE :
				gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE);
				gl.glBlendEquation(GL.GL_FUNC_ADD);
				break;
			case ALPHA_REVEAL :
				gl.glBlendFunc(GL.GL_SRC_COLOR, GL.GL_ONE_MINUS_SRC_COLOR);
				gl.glBlendEquation(GL.GL_FUNC_ADD);
				break;
			case DARK_INVERSE :
				gl.glBlendFunc(GL.GL_ONE_MINUS_DST_COLOR, GL.GL_ONE_MINUS_DST_COLOR);
				gl.glBlendEquation(GL.GL_FUNC_SUBTRACT);
				break;
			case LIGHT_ADD :
				gl.glBlendFunc(GL.GL_SRC_COLOR, GL.GL_SRC_ALPHA);
				gl.glBlendEquation(GL.GL_FUNC_ADD);
				break;
			case SATURATE :
				gl.glBlendFunc(GL.GL_SRC_COLOR, GL.GL_DST_ALPHA);
				gl.glBlendEquation(GL.GL_FUNC_ADD);
				break;
		}
	}

	public static void setBlendModeCustom(PGraphics pg, int blendSrc, int blendDest, int blendEquation) {
		GL gl = ((PJOGL)pg.beginPGL()).gl.getGL();
		gl.glBlendFunc(blendSrc, blendDest);
		gl.glBlendEquation(blendEquation);
	}

	public static void setWireframe(PGraphics pg, boolean isWireframe) {
		GL4 gl = getGL4(pg).getGL4();
		if(isWireframe == true) {
			gl.glPolygonMode( GL4.GL_FRONT_AND_BACK, GL4.GL_LINE );
		} else {
			gl.glPolygonMode( GL4.GL_FRONT_AND_BACK, GL4.GL_FILL );
		}
//		closeGL3(pg);
	}

	public static void setFog(PGraphics pg, boolean isEnabled) {
		GL2 gl = ((PJOGL)pg.beginPGL()).gl.getGL2();
		// Turn On Fog
//		float[] FogCol = {0.0f,0.8f,0.8f};  // define a nice light grey

		if(isEnabled)
			gl.glEnable(GL2.GL_FOG);
		else
			gl.glDisable(GL2.GL_FOG);

//		gl.glEnable(GL2.GL_FOG);
//		gl.glFogfv(GL2.GL_FOG_COLOR, FogCol, 1); // Set the fog color
//		gl.glFogf(GL2.GL_FOG_DENSITY,0.9f);  // Thin the fog out a little
//		gl.glFogf(GL2.GL_FOG_MODE, GL2.GL_LINEAR); // GL_LINEAR, GL_EXP, or GL_EXP2
//		gl.glFogf(GL2.GL_FOG_START, 0);
//		gl.glFogf(GL2.GL_FOG_END, 1000);

	    float[] Fog_colour = {0,0,1f,0};

	    gl.glHint(GL2.GL_FOG_HINT, GL2.GL_NICEST);

	    //gl.glFogi(GL2.GL_FOG_MODE, GL2.GL_EXP);
	    gl.glFogi(GL2.GL_FOG_MODE, GL2.GL_EXP2);
	    //gl.glFogi(GL2.GL_FOG_MODE, GL2.GL_LINEAR);

	    gl.glFogf(GL2.GL_FOG_DENSITY, 0.005f);
	    gl.glFogfv(GL2.GL_FOG_COLOR, Fog_colour, 0);
	    gl.glFogf(GL2.GL_FOG_START, 300 - 30);
	    gl.glFogf(GL2.GL_FOG_END, 300);

	}
}


text:
/* ----------------------------------------------------------------------------------
 * Hint: This is a derived (generated) file. Changes should be done in the underlying
 * source files only (*.control, *.js) or they will be lost after the next generation.
 * ---------------------------------------------------------------------------------- */

// Provides control sap.suite.ui.commons.HeaderContainer.
jQuery.sap.declare("sap.suite.ui.commons.HeaderContainer");
jQuery.sap.require("sap.suite.ui.commons.library");
jQuery.sap.require("sap.ui.core.Control");

/**
 * Constructor for a new HeaderContainer.
 *
 * Accepts an object literal mSettings that defines initial
 * property values, aggregated and associated objects as well as event handlers.
 *
 * If the name of a setting is ambiguous (e.g. a property has the same name as an event),
 * then the framework assumes property, aggregation, association, event in that order.
 * To override this automatic resolution, one of the prefixes "aggregation:", "association:"
 * or "event:" can be added to the name of the setting (such a prefixed name must be
 * enclosed in single or double quotes).
 *
 * The supported settings are:
 *

 *
Properties
 *

 *
{@link #getScrollStep scrollStep} : int (default: 300)

 *
{@link #getScrollTime scrollTime} : int (default: 500)

 *

 *
Aggregations
 *

 *
{@link #getItems items} : sap.ui.core.Control[]

 *

 *
Associations
 *

 *

 *
Events
 *

 *

 *

 *
 * @param {string} [sId] id for the new control, generated automatically if no id is given
 * @param {object} [mSettings] initial settings for the new control
 *
 * @class
 * Container that provides horizontal layout. Provides horizontal scroll on tablet and phone. On desktop provides scroll left and scroll right buttons. This control supports keyboard navigation. You can use left and right arrow keys to navigate through the inner contents. The Home key puts focus on the first control and the End key puts focus on the last control. Use Enter or Space to choose the control.
 * @extends sap.ui.core.Control
 * @implements sap.m.ObjectHeaderContainer
 * @version 1.24.2
 *
 * @constructor
 * @public
 * @name sap.suite.ui.commons.HeaderContainer
 * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
 */
sap.ui.core.Control.extend("sap.suite.ui.commons.HeaderContainer", { metadata : {

	interfaces : [
		"sap.m.ObjectHeaderContainer"
	],
	library : "sap.suite.ui.commons",
	properties : {
		"scrollStep" : {type : "int", group : "Misc", defaultValue : 300},
		"scrollTime" : {type : "int", group : "Misc", defaultValue : 500}
	},
	aggregations : {
		"scrollContainer" : {type : "sap.ui.core.Control", multiple : false, visibility : "hidden"},
		"items" : {type : "sap.ui.core.Control", multiple : true, singularName : "item"},
		"buttonPrev" : {type : "sap.ui.core.Control", multiple : false, visibility : "hidden"},
		"buttonNext" : {type : "sap.ui.core.Control", multiple : false, visibility : "hidden"}
	}
}});

/**
 * Creates a new subclass of class sap.suite.ui.commons.HeaderContainer with name sClassName
 * and enriches it with the information contained in oClassInfo.
 *
 * oClassInfo might contain the same kind of informations as described in {@link sap.ui.core.Element.extend Element.extend}.
 *
 * @param {string} sClassName name of the class to be created
 * @param {object} [oClassInfo] object literal with informations about the class
 * @param {function} [FNMetaImpl] constructor function for the metadata object. If not given, it defaults to sap.ui.core.ElementMetadata.
 * @return {function} the created class / constructor function
 * @public
 * @static
 * @name sap.suite.ui.commons.HeaderContainer.extend
 * @function
 */

/**
 * Getter for property scrollStep.
 * Number of pixels to scroll when the user chooses Next or Previous buttons. Relevant only for desktop.
 *
 * Default value is 300
 *
 * @return {int} the value of property scrollStep
 * @public
 * @name sap.suite.ui.commons.HeaderContainer#getScrollStep
 * @function
 */

/**
 * Setter for property scrollStep.
 *
 * Default value is 300
 *
 * @param {int} iScrollStep  new value for property scrollStep
 * @return {sap.suite.ui.commons.HeaderContainer} this to allow method chaining
 * @public
 * @name sap.suite.ui.commons.HeaderContainer#setScrollStep
 * @function
 */

/**
 * Getter for property scrollTime.
 * Scroll animation time miliseconds.
 *
 * Default value is 500
 *
 * @return {int} the value of property scrollTime
 * @public
 * @name sap.suite.ui.commons.HeaderContainer#getScrollTime
 * @function
 */

/**
 * Setter for property scrollTime.
 *
 * Default value is 500
 *
 * @param {int} iScrollTime  new value for property scrollTime
 * @return {sap.suite.ui.commons.HeaderContainer} this to allow method chaining
 * @public
 * @name sap.suite.ui.commons.HeaderContainer#setScrollTime
 * @function
 */

/**
 * Getter for aggregation items.

 * Items to add to HeaderContainer.
 *
 * @return {sap.ui.core.Control[]}
 * @public
 * @name sap.suite.ui.commons.HeaderContainer#getItems
 * @function
 */

/**
 * Inserts a item into the aggregation named items.
 *
 * @param {sap.ui.core.Control}
 *          oItem the item to insert; if empty, nothing is inserted
 * @param {int}
 *             iIndex the 0-based index the item should be inserted at; for
 *             a negative value of iIndex, the item is inserted at position 0; for a value
 *             greater than the current size of the aggregation, the item is inserted at
 *             the last position
 * @return {sap.suite.ui.commons.HeaderContainer} this to allow method chaining
 * @public
 * @name sap.suite.ui.commons.HeaderContainer#insertItem
 * @function
 */

/**
 * Adds some item oItem
 * to the aggregation named items.
 *
 * @param {sap.ui.core.Control}
 *            oItem the item to add; if empty, nothing is inserted
 * @return {sap.suite.ui.commons.HeaderContainer} this to allow method chaining
 * @public
 * @name sap.suite.ui.commons.HeaderContainer#addItem
 * @function
 */

/**
 * Removes an item from the aggregation named items.
 *
 * @param {int | string | sap.ui.core.Control} vItem the item to remove or its index or id
 * @return {sap.ui.core.Control} the removed item or null
 * @public
 * @name sap.suite.ui.commons.HeaderContainer#removeItem
 * @function
 */

/**
 * Removes all the controls in the aggregation named items.

 * Additionally unregisters them from the hosting UIArea.
 * @return {sap.ui.core.Control[]} an array of the removed elements (might be empty)
 * @public
 * @name sap.suite.ui.commons.HeaderContainer#removeAllItems
 * @function
 */

/**
 * Checks for the provided sap.ui.core.Control in the aggregation named items
 * and returns its index if found or -1 otherwise.
 *
 * @param {sap.ui.core.Control}
 *            oItem the item whose index is looked for.
 * @return {int} the index of the provided control in the aggregation if found, or -1 otherwise
 * @public
 * @name sap.suite.ui.commons.HeaderContainer#indexOfItem
 * @function
 */

/**
 * Destroys all the items in the aggregation
 * named items.
 * @return {sap.suite.ui.commons.HeaderContainer} this to allow method chaining
 * @public
 * @name sap.suite.ui.commons.HeaderContainer#destroyItems
 * @function
 */

// Start of sap/suite/ui/commons/HeaderContainer.js
///**
// * This file defines behavior for the control,
// */
jQuery.sap.require("sap.ui.core.IconPool");
jQuery.sap.require("sap.ui.core.Icon");
jQuery.sap.require("sap.ui.core.delegate.ItemNavigation");

sap.suite.ui.commons.HeaderContainer.prototype.init = function(){
   this._bRtl = sap.ui.getCore().getConfiguration().getRTL();
   this._rb = sap.ui.getCore().getLibraryResourceBundle("sap.suite.ui.commons");
   this._oScrollCntr = new sap.m.ScrollContainer(this.getId() + "-scrl-cntnr", {
	   width : "100%",
	   horizontal: !jQuery.device.is.desktop
   });

   this.setAggregation("scrollContainer", this._oScrollCntr);

   var that = this;

   if(jQuery.device.is.desktop) {
		this._oArrowPrev = new sap.m.Button( {
			id : this.getId() + "-scrl-prev-button",
			icon:"sap-icon://navigation-left-arrow",
			type:sap.m.ButtonType.Transparent,
			tooltip: this._rb.getText("HEADERCONTAINER_BUTTON_PREV_SECTION"),
			press : function(oE) {
				that._scroll(-that.getScrollStep(), that.getScrollTime());
			}
		});
		this._oArrowPrev.addStyleClass("sapSuiteHdrCntrBtn").addStyleClass("sapSuiteHdrCntrLeft");
		this.setAggregation("buttonPrev", this._oArrowPrev);

		this._oArrowNext = new sap.m.Button({
			id : this.getId() + "-scrl-next-button",
			icon:"sap-icon://navigation-right-arrow",
			type:sap.m.ButtonType.Transparent,
			tooltip: this._rb.getText("HEADERCONTAINER_BUTTON_NEXT_SECTION"),
			press : function(oE) {
				that._scroll(that.getScrollStep(), that.getScrollTime());
			}
		});

		this._oArrowNext.addStyleClass("sapSuiteHdrCntrBtn").addStyleClass("sapSuiteHdrCntrRight");
		this.setAggregation("buttonNext", this._oArrowNext);

	    this._oScrollCntr.addDelegate({
		    onAfterRendering:function(oObj) {
		 	   if(jQuery.device.is.desktop) {
	 				var oFocusRef = jQuery.sap.domById(that.getId() + "-scrl-cntnr-scroll");
					var oFocusObj = jQuery.sap.byId(that.getId() + "-scrl-cntnr-scroll");
					var aDomRefs = oFocusObj.find("[tabindex=0]");

					if (!that._oItemNavigation) {
						that._oItemNavigation = new sap.ui.core.delegate.ItemNavigation();
						that.addDelegate(that._oItemNavigation);
						that._oItemNavigation.attachEvent(sap.ui.core.delegate.ItemNavigation.Events.BorderReached, that._handleBorderReached, that);
						that._oItemNavigation.attachEvent(sap.ui.core.delegate.ItemNavigation.Events.AfterFocus, that._handleBorderReached, that);
					}

					that._oItemNavigation.setRootDomRef(oFocusRef);
					that._oItemNavigation.setItemDomRefs(aDomRefs);
					that._oItemNavigation.setCycling(false);
			    }
		    },

		    onBeforeRendering: function(oObj) {
		    	if (jQuery.device.is.desktop) {
					jQuery.sap.require("sap.ui.core.delegate.ScrollEnablement");
					that._oScrollCntr._oScroller = new sap.ui.core.delegate.ScrollEnablement(that._oScrollCntr, that._oScrollCntr.getId() + "-scroll", {
						horizontal: true,
						vertical: false,
						zynga: true,
						preventDefault: false,
						nonTouchScrolling: "scrollbar"
					});
		    	}
		    }
	    });
   }

};

sap.suite.ui.commons.HeaderContainer.prototype._scroll = function(iDelta, iDuration) {
	var oDomRef = jQuery.sap.domById(this.getId() + "-scrl-cntnr");
	var iScrollLeft = oDomRef.scrollLeft;
	if (!sap.ui.Device.browser.internet_explorer && this._bRtl) {
		iDelta = -iDelta;
	} // RTL lives in the negative space
	var iScrollTarget = iScrollLeft + iDelta;
	this._oScrollCntr.scrollTo(iScrollTarget, 0, iDuration);
};

sap.suite.ui.commons.HeaderContainer.prototype._checkOverflow = function() {
	var oBarHead = jQuery.sap.domById(this.getId() + "-scrl-cntnr");

	var bScrolling = false;

	if (oBarHead) {
		if (oBarHead.scrollWidth > oBarHead.clientWidth) {
			// scrolling possible
			bScrolling = true;
		}
	}

	this._lastScrolling = bScrolling;

	if (oBarHead) {
		var iScrollLeft = oBarHead.scrollLeft;

		// check whether scrolling to the left is possible
		var bScrollBack = false;
		var bScrollForward = false;

		var realWidth = oBarHead.scrollWidth;
		var availableWidth = oBarHead.clientWidth;

		if (Math.abs(realWidth - availableWidth) == 1) { // Avoid rounding issues see CSN 1316630 2013
			realWidth = availableWidth;
		}

		if (!this._bRtl) { // normal LTR mode
			if (iScrollLeft > 0) {
				bScrollBack = true;
			}
			if ((realWidth > availableWidth) && (iScrollLeft + availableWidth < realWidth)) {
				bScrollForward = true;
			}

		} else { // RTL mode
			var $List = jQuery(oBarHead);
			if ($List.scrollLeftRTL() > 0) {
				bScrollForward = true;
			}
			if ($List.scrollRightRTL() > 0) {
				bScrollBack = true;
			}
		}
		var oScrl = jQuery.sap.byId(this.getId() + "-scroll-area");
	    if(!bScrollBack) {
	    	jQuery.sap.byId(this._oArrowPrev.getId()).hide();
	    	oScrl.css(this._bRtl ? "padding-right" : "padding-left", "0rem");
	    } else {
	    	jQuery.sap.byId(this._oArrowPrev.getId()).show();
	    	oScrl.css(this._bRtl ? "padding-right" : "padding-left", "2rem");
	    }

	    if(!bScrollForward) {
	    	jQuery.sap.byId(this._oArrowNext.getId()).hide();
	    	oScrl.css(this._bRtl ? "padding-left" : "padding-right", "0rem");
	    } else {
	    	jQuery.sap.byId(this._oArrowNext.getId()).show();
	    	oScrl.css(this._bRtl ? "padding-left" : "padding-right", "2rem");
	    }
	}
};

sap.suite.ui.commons.HeaderContainer.prototype._handleBorderReached = function(oObj){
	var iIndex = oObj.getParameter("index");
	if(iIndex == 0) {
		this._scroll(-this.getScrollStep(), this.getScrollTime());
	} else if(iIndex == this.getItems().length - 1){
		this._scroll(this.getScrollStep(), this.getScrollTime());
	}
};

sap.suite.ui.commons.HeaderContainer.prototype.addItem = function(oItem, bSuppressInvalidate) {
	return this._oScrollCntr.addContent(oItem.addStyleClass("sapSuiteHrdrCntrInner"), bSuppressInvalidate);
};

sap.suite.ui.commons.HeaderContainer.prototype.insertItem = function(oItem, iIndex, bSuppressInvalidate) {
	return this._oScrollCntr.insertContent(oItem.addStyleClass("sapSuiteHrdrCntrInner"), iIndex, bSuppressInvalidate);
};

sap.suite.ui.commons.HeaderContainer.prototype._callMethodInManagedObject = function(sFunctionName, sAggregationName){
    var args = Array.prototype.slice.call(arguments);
    if(sAggregationName === "items"){
        args[1] = "content";
        return this._oScrollCntr[sFunctionName].apply(this._oScrollCntr, args.slice(1));
    } else {
        return sap.ui.base.ManagedObject.prototype[sFunctionName].apply(this, args.slice(1));
    }

};

sap.suite.ui.commons.HeaderContainer.prototype.onBeforeRendering = function() {
	if (jQuery.device.is.desktop) {
		sap.ui.getCore().attachIntervalTimer(this._checkOverflow, this); // proxy() is needed for the additional parameters, not for "this"
	}

	if (jQuery.device.is.desktop) {
		this.$().unbind("click", this.handleSwipe);
	}
};

sap.suite.ui.commons.HeaderContainer.prototype.onAfterRendering = function() {
	jQuery.sap.byId(this.getId() + "-scrl-next-button").attr("tabindex","-1");
	jQuery.sap.byId(this.getId() + "-scrl-prev-button").attr("tabindex","-1");
	if (jQuery.device.is.desktop) {
		this.$().bind("swipe", jQuery.proxy(this.handleSwipe, this));
	}
};

sap.suite.ui.commons.HeaderContainer.prototype.handleSwipe = function(oE) {
	oE.preventDefault();
	oE.stopPropagation();
	this._isDragEvent = true;
};

sap.suite.ui.commons.HeaderContainer.prototype.exit = function() {
	if (this._oItemNavigation) {
		this.removeDelegate(this._oItemNavigation);
		this._oItemNavigation.destroy();
	}
};

sap.suite.ui.commons.HeaderContainer.prototype.onclick = function(oE) {
	if(this._isDragEvent) {
		oE.preventDefault();
		oE.stopPropagation();
		this._isDragEvent = false;
	}
};

///**************************************************************
// * START - forward aggregation related methods to the inner aggregation
// **************************************************************/
sap.suite.ui.commons.HeaderContainer.prototype.validateAggregation = function(sAggregationName, oObject, bMultiple){
    return this._callMethodInManagedObject("validateAggregation", sAggregationName, oObject, bMultiple);
};

sap.suite.ui.commons.HeaderContainer.prototype.getAggregation = function(sAggregationName, oObject, bSuppressInvalidate){
    return this._callMethodInManagedObject("getAggregation", sAggregationName, oObject, bSuppressInvalidate);
};

sap.suite.ui.commons.HeaderContainer.prototype.setAggregation = function(sAggregationName, oObject, bSuppressInvalidate){
    this._callMethodInManagedObject("setAggregation", sAggregationName, oObject, bSuppressInvalidate);
    return this;
};

sap.suite.ui.commons.HeaderContainer.prototype.indexOfAggregation = function(sAggregationName, oObject){
    return this._callMethodInManagedObject("indexOfAggregation", sAggregationName, oObject);
};

sap.suite.ui.commons.HeaderContainer.prototype.insertAggregation = function(sAggregationName, oObject, iIndex, bSuppressInvalidate){
    this._callMethodInManagedObject("insertAggregation", sAggregationName, oObject, iIndex, bSuppressInvalidate);
    return this;
};

sap.suite.ui.commons.HeaderContainer.prototype.addAggregation = function(sAggregationName, oObject, bSuppressInvalidate){
    this._callMethodInManagedObject("addAggregation", sAggregationName, oObject, bSuppressInvalidate);
    return this;
};

sap.suite.ui.commons.HeaderContainer.prototype.removeAggregation = function(sAggregationName, oObject, bSuppressInvalidate){
    return this._callMethodInManagedObject("removeAggregation", sAggregationName, oObject, bSuppressInvalidate);
};

sap.suite.ui.commons.HeaderContainer.prototype.removeAllAggregation = function(sAggregationName, bSuppressInvalidate){
    return this._callMethodInManagedObject("removeAllAggregation", sAggregationName, bSuppressInvalidate);
};

sap.suite.ui.commons.HeaderContainer.prototype.destroyAggregation = function(sAggregationName, bSuppressInvalidate){
    this._callMethodInManagedObject("destroyAggregation", sAggregationName, bSuppressInvalidate);
    return this;
};


text:
#include <unicorn/video/OrthographicCamera.hpp>

#include <glm/gtc/matrix_transform.hpp>

namespace unicorn
{
namespace video
{

OrthographicCamera::OrthographicCamera(system::Window& window, glm::mat4& cameraProj)
    : CameraProjection(window, cameraProj)
    , m_orthoScale(DEFAULT_ORTHO_BOX_SCALE)
    , m_scaledAspect(m_aspect / m_orthoScale)
    , m_right(static_cast<float>(m_pWindow->GetSize().first) / 2)
    , m_top(static_cast<float>(m_pWindow->GetSize().second) / 2)
    , m_back(BACK_ORTHO_FRUSTRUM_PLANE)
    , m_front(FRONT_ORTHO_FRUSTRUM_PLANE)
{
    UpdateProjection();
}

void OrthographicCamera::UpdateProjection()
{
    m_right = static_cast<float>(m_pWindow->GetSize().first) / 2;
    m_top = static_cast<float>(m_pWindow->GetSize().second) / 2;

    float const xScaled = m_right * m_scaledAspect;
    float const yScaled = m_top * m_scaledAspect;

    m_cameraProjection = glm::ortho(-xScaled, xScaled,
                                    -yScaled, yScaled,
                                    m_back, m_front);
    m_cameraProjection[1][1] *= -1; // For vulkan rendering.
}

void OrthographicCamera::SetScale(float scale)
{
    m_orthoScale = std::max(scale, 1.0f);
    m_scaledAspect = m_aspect / m_orthoScale;
    UpdateProjection();
}

float OrthographicCamera::GetScale() const
{
    return m_orthoScale;
}

} // namespace video
} // namespace unicorn


text:
package hr.fer.zemris.vhdllab.platform.ui.about;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Point;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.JTextArea;
import javax.swing.JViewport;
import javax.swing.Timer;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;

import org.springframework.core.io.Resource;
import org.springframework.richclient.application.Application;
import org.springframework.richclient.application.ApplicationDescriptor;
import org.springframework.richclient.command.AbstractCommand;
import org.springframework.richclient.dialog.ApplicationDialog;
import org.springframework.richclient.dialog.CloseAction;
import org.springframework.richclient.text.HtmlPane;
import org.springframework.util.FileCopyUtils;
import org.springframework.util.StringUtils;

/**
 * Direct copy of {@link org.springframework.richclient.application.support.AboutBox} with some modifications:
 *

 *
added UTF-8 encoding when reading aboutTextPath

 *
changed font to JTextArea txtDescriptor

 *
increased height of dialogPanel.preferredSize to 550 pixels

 *
added serialVersionUID to HtmlScroller to avoid warning

 *

 *
 * @author Miro Bezjak
 * @version 1.0
 * @since Sep 19, 2010
 */
public class AboutBox {
    private Resource aboutTextPath;

    public AboutBox() {
    }

    /**
     * @param path
     */
    public void setAboutTextPath(Resource path) {
        this.aboutTextPath = path;
    }

    /**
     * @return the aboutTextPath
     */
    public Resource getAboutTextPath() {
        return aboutTextPath;
    }

    public void display(Window parent) {
        AboutDialog aboutMainDialog = new AboutDialog();
        aboutMainDialog.setParentComponent(parent);
        aboutMainDialog.showDialog();
    }

    protected class AboutDialog extends ApplicationDialog {

        private HtmlScroller scroller;

        public AboutDialog() {
            setTitle("About " + getApplicationName());
            setResizable(false);
            setCloseAction(CloseAction.DISPOSE);
        }

        @Override
        protected void addDialogComponents() {
            JComponent dialogContentPane = createDialogContentPane();
            getDialogContentPane().add(dialogContentPane);
            getDialogContentPane().add(createButtonBar(), BorderLayout.SOUTH);
        }

        /**
         * Create the control that shows the application descriptor data (title,
         * caption, description, version, and build id).
         *
         * @return control
         */
        protected JComponent createApplicationDescriptorComponent() {
            // Build the application descriptor data, if available
            JTextArea txtDescriptor = getComponentFactory().createTextAreaAsLabel();
            txtDescriptor.setFont(new Font("Verdana", Font.PLAIN, 11)); // 19.09.2010 added different font
            txtDescriptor.setBorder(BorderFactory.createEmptyBorder(5, 5, 0, 0));
            ApplicationDescriptor appDesc = Application.instance().getDescriptor();
            if( appDesc != null ) {
                String displayName = appDesc.getDisplayName();
                String caption = appDesc.getCaption();
                String description = appDesc.getDescription();
                String version = appDesc.getVersion();
                String buildId = appDesc.getBuildId();
                StringBuffer sb = new StringBuffer();

                if( StringUtils.hasText(displayName) ) {
                    sb.append(displayName).append("\n");
                }
                if( StringUtils.hasText(caption) ) {
                    sb.append(caption).append("\n\n");
                }
                if( StringUtils.hasText(description) ) {
                    sb.append(description).append("\n\n");
                }
                if( StringUtils.hasText(version) ) {
                    sb.append(getMessage("aboutBox.version.label")).append(": ").append(version).append("\n");
                }
                if( StringUtils.hasText(buildId) ) {
                    sb.append(getMessage("aboutBox.buildId.label")).append(": ").append(buildId).append("\n");
                }
                txtDescriptor.setText(sb.toString());
            }
            return txtDescriptor;
        }

        /**
         * Construct the main dialog pane.
         * @return Constructed component
         */
        @Override
        protected JComponent createDialogContentPane() {
            JPanel dialogPanel = new JPanel(new BorderLayout());

            // Add in the application descriptor data, if available
            dialogPanel.add(createApplicationDescriptorComponent(), BorderLayout.NORTH);

            // If a text file resource has been specified, then construct the
            // scroller to show it.
            if( aboutTextPath != null ) {
                try {
                    scroller = new HtmlScroller(false, 2000, 15, 10);
                    String text = FileCopyUtils.copyToString(new BufferedReader(new InputStreamReader(aboutTextPath
                            .getInputStream(), "UTF-8"))); // 19.09.2010 added UTF-8
                    scroller.setHtml(text);
                } catch( IOException e ) {
                    final IllegalStateException exp = new IllegalStateException("About text not accessible: "
                            + e.getMessage());
                    exp.setStackTrace(e.getStackTrace());
                    throw exp;
                }
                dialogPanel.add(scroller);
                dialogPanel.setPreferredSize(new Dimension(scroller.getPreferredSize().width, 550));  // 19.09.2010 increased size from 300 to 550 pixels
            } else {
                // Set the preferred size
                dialogPanel.setPreferredSize(new Dimension( 300, 200));
            }
            dialogPanel.add(new JSeparator(), BorderLayout.SOUTH);
            return dialogPanel;
        }

        @Override
        protected void onAboutToShow() {
            if( scroller != null ) {
                try {
                    String text = FileCopyUtils.copyToString(new BufferedReader(new InputStreamReader(aboutTextPath
                            .getInputStream(), "UTF-8"))); // 19.09.2010 added UTF-8
                    scroller.setHtml(text);
                }
                catch (IOException e) {
                    final IllegalStateException exp =
                            new IllegalStateException("About text not accessible: "+e.getMessage());
                    exp.setStackTrace(e.getStackTrace());
                    throw exp;
                }
                scroller.reset();
                scroller.startScrolling();
            }
        }

        @Override
        protected boolean onFinish() {
            if( scroller != null ) {
                scroller.pauseScrolling();
            }
            return true;
        }

        @Override
        protected Object[] getCommandGroupMembers() {
            return new AbstractCommand[] { getFinishCommand() };
        }

        /**
         * Get the scrolling HTML panel.
         * @return scroller
         */
        protected HtmlScroller getHtmlScroller() {
            return scroller;
        }
    }

    /**
     * A panel that scrolls the content of a HTML document.
     *
     * @author Oliver Hutchison
     */
    protected static class HtmlScroller extends JViewport implements HyperlinkListener {

        private static final long serialVersionUID = 9119949044332804060L; // 19.09.2010 added to avoid warning

        private HtmlPane htmlPane;

        private Timer timer;

        private int initalDelay;

        private double incY = 0;

        private double currentY = 0;

        private double currentX = 0;

        /**
         * Created a new HtmlScroller.
         *
         * @param antiAlias
         *            antialias the rendered HTML
         * @param initalDelay
         *            inital delay after which scrolling begins
         * @param speedPixSec
         *            scoll speed in pixels per second
         * @param fps
         *            number of updates per second
         */
        public HtmlScroller(boolean antiAlias, int initalDelay, int speedPixSec, int fps) {
            this.initalDelay = initalDelay;

            incY = (double)speedPixSec / (double)fps;

            htmlPane = new HtmlPane();
            htmlPane.setAntiAlias(antiAlias);
            htmlPane.addHyperlinkListener(this);
            setView(htmlPane);
            timer = new Timer(1000 / fps, new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    int maxY = htmlPane.getHeight() - getHeight();
                    currentY = Math.max(0, Math.min(currentY + incY, maxY));
                    if (currentY <= 0 || currentY == maxY) {
                        pauseScrolling();
                    }
                    setViewPositionInternal(new Point((int)currentX, (int)currentY));
                }
            });
            reset();
        }

        /**
         * Sets the HTML that will be rendered by this component.
         */
        public void setHtml(String html) {
            htmlPane.setText(html);
            setPreferredSize(htmlPane.getPreferredSize());
        }

        /**
         * Resets this component to its inital state.
         */
        public final void reset() {
            currentX = 0;
            currentY = 0;
            timer.setInitialDelay(initalDelay);
            setViewPositionInternal(new Point((int)currentX, (int)currentY));
        }

        /**
         * Starts the scoller
         */
        public void startScrolling() {
            timer.start();
        }

        /**
         * Pauses the scoller.
         */
        public void pauseScrolling() {
            timer.stop();
            timer.setInitialDelay(0);
        }

        @Override
        public void setViewPosition(Point p) {
            // ignore calls that are not internal
        }

        public void hyperlinkUpdate(HyperlinkEvent e) {
            if (e.getEventType().equals(HyperlinkEvent.EventType.ENTERED)) {
                enteredLink();
            }
            else if (e.getEventType().equals(HyperlinkEvent.EventType.EXITED)) {
                exitedLink();
            }
        }

        private void setViewPositionInternal(Point p) {
            super.setViewPosition(p);
        }

        private void enteredLink() {
            pauseScrolling();
        }

        private void exitedLink() {
            startScrolling();
        }
    }
}


text:
<template name="eduFooter">
    <div>@2015 eduNetSystems</div>
</template>


text:
package lab.meteor.visualize.diagram;

import co.gongzh.snail.util.Vector2D;

public interface Linable {

	void addLine(Line line);
	void removeLine(Line line);

	Vector2D getArchor(Vector2D center);
	Vector2D getCenter();

	boolean isHidden();
}


text:
Are there any images that look unusual? List the file name of any unusual images for this night here, with description:

- Several of the EY UMa images have bright sky background.
- Satellite in `ey-uma-041R.fit`

## Missing information?

Check these off if they are true:

- [x] No images are missing filter information (except BIAS and DARK, which need no filter).
- [x] No images are missing pointing information (RA/Dec and WCS)
- [x] No images are missing object names (only applies to science images)

If any images are missing information and you have been unable to fix them please list
them below with a short description of the problem.

+ `m34-002R.fit` -- no WCS, looks like there were maybe clouds.
+ `m404-001B.fit` -- Not sure what object this, and googling `m404` got me a 404.
+ `sa113-099V.fit` -- No filter in the FITS header, not sure what it should be.

## What, if anything, did you have to do to fix images on this night?

Remember, you should do your changes with scripts that you number and place in the
directory along with the data so the procedure could be repeated if needed or
desired.

Here, explain in English (not code) what you fixed, if anything.


text:
FROM golang:1.19-alpine3.16 as builder
ARG GOPROXY
ARG GOTAGS
ARG GOGCFLAGS

ARG DRAGONFLY2_GITHUB_BRANCH=release-2.0.7
ARG MANAGER_CONSOLE_BRANCH=release-0.1.4

WORKDIR /go/src/d7y.io/dragonfly/v2

RUN apk --no-cache add bash make gcc libc-dev git && \
    git clone -b ${DRAGONFLY2_GITHUB_BRANCH} https://github.com/dragonflyoss/Dragonfly2.git /go/src/d7y.io/dragonfly/v2 && \
    git clone -b ${MANAGER_CONSOLE_BRANCH} https://github.com/dragonflyoss/console.git /go/src/d7y.io/dragonfly/v2/manager/console

RUN make build-dfget && make install-dfget

FROM marketplace.gcr.io/google/debian11 as health

ARG GRPC_HEALTH_PROBE_VERSION=v0.4.11

RUN apt update && apt install -y wget && \
    if [ "$(uname -m)" = "ppc64le" ]; then \
    wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-ppc64le; \
    elif [ "$(uname -m)" = "aarch64" ]; then \
    wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-arm64; \
    else \
    wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64; \
    fi && \
    chmod +x /bin/grpc_health_probe

FROM marketplace.gcr.io/google/debian11
ENV C2D_RELEASE 2.0.7
ENV DRAGONFLY_MANAGER_ADDR localhost
ENV PATH=/opt/dragonfly/bin:$PATH

RUN echo "hosts: files dns" > /etc/nsswitch.conf

COPY --from=builder /opt/dragonfly/bin/dfget /opt/dragonfly/bin/dfget
COPY --from=health /bin/grpc_health_probe /bin/grpc_health_probe

COPY config/seed-peer.yaml /etc/dragonfly/dfget.yaml
COPY docker-entrypoint.sh /docker-entrypoint.sh
RUN apt update && apt install -y gettext-base && \
    chmod +x /docker-entrypoint.sh

EXPOSE 65001

ENTRYPOINT ["/docker-entrypoint.sh"]


text:
<?php

namespace Pagekit\Blog\Model;

use Pagekit\Comment\Model\Comment as BaseComment;

/**
 * @Entity(tableClass="@blog_comment")
 */
class Comment extends BaseComment implements \JsonSerializable
{
    /** @Column(type="integer") */
    protected $post_id;

    /** @Column(type="string") */
    protected $user_id;

    /** @Column(type="string") */
    protected $email;

    /** @Column(type="string") */
    protected $url = '';

    /** @Column(type="string") */
    protected $ip;

    /** @BelongsTo(targetEntity="Post", keyFrom="post_id") */
    protected $post;

    /** @BelongsTo(targetEntity="Pagekit\User\Model\User", keyFrom="user_id") */
    protected $user;

    public function getPostId()
    {
        return $this->post_id;
    }

    public function setPostId($postId)
    {
        $this->post_id = $postId;
    }

    public function getUserId()
    {
        return $this->user_id;
    }

    public function setUserId($userId)
    {
        $this->user_id = $userId;
    }

    public function getEmail()
    {
        return $this->email;
    }

    public function setEmail($email)
    {
        $this->email = $email;
    }

    public function getUrl()
    {
        return $this->url;
    }

    public function setUrl($url)
    {
        $this->url = $url;
    }

    public function getIp()
    {
        return $this->ip;
    }

    public function setIp($ip)
    {
        $this->ip = $ip;
    }

    public function getPost()
    {
        return $this->post;
    }

    public function setPost($post)
    {
        $this->post = $post;

        if ($post) {
            $this->post_id = $post->getId();
        }
    }

    public function getUser()
    {
        return $this->user;
    }

    public function setUser($user)
    {
        $this->user = $user;
    }

    public function getStatusText()
    {
        $statuses = self::getStatuses();

        return isset($statuses[$this->status]) ? $statuses[$this->status] : __('Unknown');
    }

    public static function getStatuses()
    {
        return [
            self::STATUS_APPROVED => __('Approved'),
            self::STATUS_PENDING  => __('Pending'),
            self::STATUS_SPAM     => __('Spam')
        ];
    }
}


text:
class Profile < ApplicationRecord
  has_attached_file :avatar, styles: { large: "600x600#",medium: "300x300#", small: "200x200#", thumb: "100x100#" }, default_url: "profilepic_creative.png", secondarydefault_url: "profiledefault.jpg"
  validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\z/

  belongs_to :user
  has_many :employments
  has_many :messages

  def full_name
    "#{firstname} #{lastname}"
  end

  def self.search(search)
    if search
      where('city ILIKE ? OR firstname ILIKE ? OR lastname ILIKE ? OR role ILIKE ? OR company ILIKE?', "%#{search}%", "%#{search}%", "%#{search}%", "%#{search}%", "%#{search}%")
    else
      all
    end
  end

end


text:
from m5.params import *
from ClockedObject import ClockedObject

class RubyController(ClockedObject):
    type = 'RubyController'
    cxx_class = 'AbstractController'
    cxx_header = "mem/ruby/slicc_interface/AbstractController.hh"
    abstract = True
    version = Param.Int("")
    cluster_id = Param.UInt32(0, "Id of this controller's cluster")

    transitions_per_cycle = \
        Param.Int(32, "no. of  SLICC state machine transitions per cycle")
    buffer_size = Param.Int(0, "max buffer size 0 means infinite")
    recycle_latency = Param.Cycles(10, "")
    number_of_TBEs = Param.Int(256, "")
    ruby_system = Param.RubySystem("")

    peer = Param.RubyController(NULL, "")


text:
class CustomShaderFeatureData;

class CustomFeatureHLSL : public ShaderFeatureHLSL
{
   friend class CustomShaderFeatureData;

   struct VarHolder
   {
      String varName;
      String type;
      String defaultValue;
      S32 elementId;
      bool uniform;
      bool sampler;
      bool texture;
      bool texCoord;
      U32 constNum;
      U32 arraySize;
      String structName;
      ConstantSortPosition constSortPos;

      VarHolder() :
         varName(""),
         type(""),
         defaultValue(""),
         elementId(-1),
         uniform(false),
         sampler(false),
         texture(false),
         texCoord(false),
         constNum(0),
         arraySize(0),
         structName(""),
         constSortPos(cspUninit)
      {
      }

      VarHolder(String _varName, String _type, String _defaultValue) :
         elementId(-1), uniform(false), sampler(false), texture(false), texCoord(false), constNum(0), arraySize(0), structName(""), constSortPos(cspUninit)
      {
         varName = _varName;
         type = _type;
         defaultValue = _defaultValue;
      }
   };

   Vector<VarHolder> mVars;

   Vector<VarHolder> mConnectorVars;

   enum outputState
   {
      NoOutput,
      VertexOutput,
      PixelOutput
   };

   outputState mOutputState;

public:
   CustomShaderFeatureData* mOwner;

   Vector<ShaderComponent*> mComponentList;
   MaterialFeatureData mFeatureData;

protected:
   MultiLine* meta;

public:

   //****************************************************************************
   // Accu Texture
   //****************************************************************************
   virtual void processVert(Vector<ShaderComponent*>& componentList,
      const MaterialFeatureData& fd);

   virtual void processPix(Vector<ShaderComponent*>& componentList,
      const MaterialFeatureData& fd);

   virtual Material::BlendOp getBlendOp() { return Material::LerpAlpha; }

   virtual Resources getResources(const MaterialFeatureData& fd)
   {
      Resources res;
      res.numTex = 1;
      res.numTexReg = 1;
      return res;
   }

   virtual void setTexData(Material::StageData& stageDat,
      const MaterialFeatureData& fd,
      RenderPassData& passData,
      U32& texIndex);

   virtual String getName()
   {
      return mOwner->getName();
   }

   bool hasFeature(String name);

   void addUniform(String name, String type, String defaultValue, U32 arraySize = 0);
   void addVariable(String name, String type, String defaultValue);
   void addSampler(String name, String type, U32 arraySize = 0);
   void addTexture(String name, String type, String samplerState, U32 arraySize);
   void addConnector(String name, String type, String elementName);
   void addVertTexCoord(String name);
   void writeLine(String format, S32 argc, ConsoleValue* argv);
};


text:
package com.ukefu.webim.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ukefu.webim.service.repository.AgentUserRepository;
import com.ukefu.webim.web.model.AgentUser;

@Service
public class AgentUserService {

	@Autowired
	private AgentUserRepository agentUserRepository;

	public AgentUser findByUseridAndOrgi(String userid , String orgi){
		List<AgentUser> agentUsers = agentUserRepository.findByUseridAndOrgi(userid , orgi)  ;
		return agentUsers.size()> 0 ? agentUsers.get(0) : null ;
	}

	public void save(AgentUser agentUser){
		agentUserRepository.save(agentUser) ;
	}

	public void delete(String id){
		agentUserRepository.delete(id);
	}
}


text:
package com.microsoft.azure.management.cognitiveservices.v2017_04_18;

import java.util.Collection;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.microsoft.rest.ExpandableStringEnum;

/**
 * Defines values for Kind.
 */
public final class Kind extends ExpandableStringEnum<Kind> {
    /** Static value Bing.Autosuggest.v7 for Kind. */
    public static final Kind BING_AUTOSUGGESTV7 = fromString("Bing.Autosuggest.v7");

    /** Static value Bing.CustomSearch for Kind. */
    public static final Kind BING_CUSTOM_SEARCH = fromString("Bing.CustomSearch");

    /** Static value Bing.Search.v7 for Kind. */
    public static final Kind BING_SEARCHV7 = fromString("Bing.Search.v7");

    /** Static value Bing.Speech for Kind. */
    public static final Kind BING_SPEECH = fromString("Bing.Speech");

    /** Static value Bing.SpellCheck.v7 for Kind. */
    public static final Kind BING_SPELL_CHECKV7 = fromString("Bing.SpellCheck.v7");

    /** Static value ComputerVision for Kind. */
    public static final Kind COMPUTER_VISION = fromString("ComputerVision");

    /** Static value ContentModerator for Kind. */
    public static final Kind CONTENT_MODERATOR = fromString("ContentModerator");

    /** Static value CustomSpeech for Kind. */
    public static final Kind CUSTOM_SPEECH = fromString("CustomSpeech");

    /** Static value CustomVision.Prediction for Kind. */
    public static final Kind CUSTOM_VISION_PREDICTION = fromString("CustomVision.Prediction");

    /** Static value CustomVision.Training for Kind. */
    public static final Kind CUSTOM_VISION_TRAINING = fromString("CustomVision.Training");

    /** Static value Emotion for Kind. */
    public static final Kind EMOTION = fromString("Emotion");

    /** Static value Face for Kind. */
    public static final Kind FACE = fromString("Face");

    /** Static value LUIS for Kind. */
    public static final Kind LUIS = fromString("LUIS");

    /** Static value QnAMaker for Kind. */
    public static final Kind QN_AMAKER = fromString("QnAMaker");

    /** Static value SpeakerRecognition for Kind. */
    public static final Kind SPEAKER_RECOGNITION = fromString("SpeakerRecognition");

    /** Static value SpeechTranslation for Kind. */
    public static final Kind SPEECH_TRANSLATION = fromString("SpeechTranslation");

    /** Static value TextAnalytics for Kind. */
    public static final Kind TEXT_ANALYTICS = fromString("TextAnalytics");

    /** Static value TextTranslation for Kind. */
    public static final Kind TEXT_TRANSLATION = fromString("TextTranslation");

    /** Static value WebLM for Kind. */
    public static final Kind WEB_LM = fromString("WebLM");

    /**
     * Creates or finds a Kind from its string representation.
     * @param name a name to look for
     * @return the corresponding Kind
     */
    @JsonCreator
    public static Kind fromString(String name) {
        return fromString(name, Kind.class);
    }

    /**
     * @return known Kind values
     */
    public static Collection<Kind> values() {
        return values(Kind.class);
    }
}