diff --git a/.classpath b/.classpath
index b4670c9..09ba841 100644
--- a/.classpath
+++ b/.classpath
@@ -6,19 +6,18 @@
-
-
-
+
-
+
+
-
+
-
+
-
+
diff --git a/.metadata/.log b/.metadata/.log
index 90d92e2..e14a02b 100644
--- a/.metadata/.log
+++ b/.metadata/.log
@@ -1,10 +1,10 @@
-!SESSION 2016-11-12 15:28:17.844 -----------------------------------------------
-eclipse.buildId=4.6.1.M20160907-1200
-java.version=1.8.0_60
-java.vendor=Oracle Corporation
-BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
-Framework arguments: -product org.eclipse.epp.package.java.product
-Command-line arguments: -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product
-
-!ENTRY org.eclipse.core.net 1 0 2016-11-12 15:28:54.631
-!MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences
+!SESSION 2016-11-12 15:28:17.844 -----------------------------------------------
+eclipse.buildId=4.6.1.M20160907-1200
+java.version=1.8.0_60
+java.vendor=Oracle Corporation
+BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
+Framework arguments: -product org.eclipse.epp.package.java.product
+Command-line arguments: -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.java.product
+
+!ENTRY org.eclipse.core.net 1 0 2016-11-12 15:28:54.631
+!MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
index dffc6b5..77fe583 100644
--- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
@@ -1,2 +1,2 @@
-eclipse.preferences.version=1
-version=1
+eclipse.preferences.version=1
+version=1
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs
index 1768a1e..516ee5b 100644
--- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs
@@ -1,13 +1,13 @@
-content_assist_proposals_background=255,255,255
-content_assist_proposals_foreground=0,0,0
-eclipse.preferences.version=1
-fontPropagated=true
-org.eclipse.jdt.ui.editor.tab.width=
-org.eclipse.jdt.ui.formatterprofiles.version=12
-org.eclipse.jdt.ui.javadoclocations.migrated=true
-org.eclipse.jface.textfont=1|Monaco|11.0|0|COCOA|1|;
-proposalOrderMigrated=true
-spelling_locale_initialized=true
-tabWidthPropagated=true
-useAnnotationsPrefPage=true
-useQuickDiffPrefPage=true
+content_assist_proposals_background=255,255,255
+content_assist_proposals_foreground=0,0,0
+eclipse.preferences.version=1
+fontPropagated=true
+org.eclipse.jdt.ui.editor.tab.width=
+org.eclipse.jdt.ui.formatterprofiles.version=12
+org.eclipse.jdt.ui.javadoclocations.migrated=true
+org.eclipse.jface.textfont=1|Monaco|11.0|0|COCOA|1|;
+proposalOrderMigrated=true
+spelling_locale_initialized=true
+tabWidthPropagated=true
+useAnnotationsPrefPage=true
+useQuickDiffPrefPage=true
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs
index 67b1d96..c05c14c 100644
--- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs
@@ -1,2 +1,2 @@
-eclipse.preferences.version=1
-org.eclipse.m2e.discovery.pref.projects=
+eclipse.preferences.version=1
+org.eclipse.m2e.discovery.pref.projects=
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
index 43e97e4..e5a71f2 100644
--- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
@@ -1,2 +1,2 @@
-eclipse.preferences.version=1
-mylyn.attention.migrated=true
+eclipse.preferences.version=1
+mylyn.attention.migrated=true
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs
index 8d462a6..e0b8c16 100644
--- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs
@@ -1,2 +1,2 @@
-eclipse.preferences.version=1
-org.eclipse.mylyn.monitor.activity.tracking.enabled.checked=true
+eclipse.preferences.version=1
+org.eclipse.mylyn.monitor.activity.tracking.enabled.checked=true
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs
index 2b60c21..46ef804 100644
--- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs
@@ -1,5 +1,5 @@
-eclipse.preferences.version=1
-migrated.task.repositories.secure.store=true
-org.eclipse.mylyn.tasks.ui.filters.nonmatching=true
-org.eclipse.mylyn.tasks.ui.filters.nonmatching.encouraged=true
-org.eclipse.mylyn.tasks.ui.welcome.message=true
+eclipse.preferences.version=1
+migrated.task.repositories.secure.store=true
+org.eclipse.mylyn.tasks.ui.filters.nonmatching=true
+org.eclipse.mylyn.tasks.ui.filters.nonmatching.encouraged=true
+org.eclipse.mylyn.tasks.ui.welcome.message=true
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
index 56cd496..848e263 100644
--- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
@@ -1,2 +1,2 @@
-eclipse.preferences.version=1
-org.eclipse.team.ui.first_time=false
+eclipse.preferences.version=1
+org.eclipse.team.ui.first_time=false
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
index 61f3bb8..a6c2629 100644
--- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs
@@ -1,2 +1,2 @@
-eclipse.preferences.version=1
-overviewRuler_migration=migrated_3.1
+eclipse.preferences.version=1
+overviewRuler_migration=migrated_3.1
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
index 594ac20..7d4bbb2 100644
--- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
@@ -1,5 +1,5 @@
-PROBLEMS_FILTERS_MIGRATE=true
-eclipse.preferences.version=1
-platformState=1478982499589
-quickStart=false
-tipsAndTricks=true
+PROBLEMS_FILTERS_MIGRATE=true
+eclipse.preferences.version=1
+platformState=1478982499589
+quickStart=false
+tipsAndTricks=true
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
index dd77496..bf49ea8 100644
--- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
@@ -1,3 +1,3 @@
-//org.eclipse.ui.commands/state/org.eclipse.ui.navigator.resources.nested.changeProjectPresentation/org.eclipse.ui.commands.radioState=false
-PLUGINS_NOT_ACTIVATED_ON_STARTUP=org.eclipse.m2e.discovery;
-eclipse.preferences.version=1
+//org.eclipse.ui.commands/state/org.eclipse.ui.navigator.resources.nested.changeProjectPresentation/org.eclipse.ui.commands.radioState=false
+PLUGINS_NOT_ACTIVATED_ON_STARTUP=org.eclipse.m2e.discovery;
+eclipse.preferences.version=1
diff --git a/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
index 379cafa..f769a36 100644
--- a/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
+++ b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
@@ -1,2385 +1,2385 @@
-
-
-
- activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration
- ModelMigrationProcessor.001
-
-
-
-
-
-
-
- topLevel
-
-
-
-
- persp.actionSet:org.eclipse.mylyn.doc.actionSet
- persp.actionSet:org.eclipse.mylyn.tasks.ui.navigation
- persp.actionSet:org.eclipse.ui.cheatsheets.actionSet
- persp.actionSet:org.eclipse.search.searchActionSet
- persp.actionSet:org.eclipse.ui.edit.text.actionSet.annotationNavigation
- persp.actionSet:org.eclipse.ui.edit.text.actionSet.navigation
- persp.actionSet:org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo
- persp.actionSet:org.eclipse.ui.externaltools.ExternalToolsSet
- persp.actionSet:org.eclipse.ui.actionSet.keyBindings
- persp.actionSet:org.eclipse.ui.actionSet.openFiles
- persp.actionSet:org.eclipse.debug.ui.launchActionSet
- persp.actionSet:org.eclipse.jdt.ui.JavaActionSet
- persp.actionSet:org.eclipse.jdt.ui.JavaElementCreationActionSet
- persp.actionSet:org.eclipse.ui.NavigateActionSet
- persp.viewSC:org.eclipse.jdt.ui.PackageExplorer
- persp.viewSC:org.eclipse.jdt.ui.TypeHierarchy
- persp.viewSC:org.eclipse.jdt.ui.SourceView
- persp.viewSC:org.eclipse.jdt.ui.JavadocView
- persp.viewSC:org.eclipse.search.ui.views.SearchView
- persp.viewSC:org.eclipse.ui.console.ConsoleView
- persp.viewSC:org.eclipse.ui.views.ContentOutline
- persp.viewSC:org.eclipse.ui.views.ProblemView
- persp.viewSC:org.eclipse.ui.views.ResourceNavigator
- persp.viewSC:org.eclipse.ui.views.TaskList
- persp.viewSC:org.eclipse.ui.views.ProgressView
- persp.viewSC:org.eclipse.ui.navigator.ProjectExplorer
- persp.viewSC:org.eclipse.ui.texteditor.TemplatesView
- persp.viewSC:org.eclipse.pde.runtime.LogView
- persp.newWizSC:org.eclipse.jdt.ui.wizards.JavaProjectWizard
- persp.newWizSC:org.eclipse.jdt.ui.wizards.NewPackageCreationWizard
- persp.newWizSC:org.eclipse.jdt.ui.wizards.NewClassCreationWizard
- persp.newWizSC:org.eclipse.jdt.ui.wizards.NewInterfaceCreationWizard
- persp.newWizSC:org.eclipse.jdt.ui.wizards.NewEnumCreationWizard
- persp.newWizSC:org.eclipse.jdt.ui.wizards.NewAnnotationCreationWizard
- persp.newWizSC:org.eclipse.jdt.ui.wizards.NewSourceFolderCreationWizard
- persp.newWizSC:org.eclipse.jdt.ui.wizards.NewSnippetFileCreationWizard
- persp.newWizSC:org.eclipse.jdt.ui.wizards.NewJavaWorkingSetWizard
- persp.newWizSC:org.eclipse.ui.wizards.new.folder
- persp.newWizSC:org.eclipse.ui.wizards.new.file
- persp.newWizSC:org.eclipse.ui.editors.wizards.UntitledTextFileWizard
- persp.perspSC:org.eclipse.jdt.ui.JavaBrowsingPerspective
- persp.perspSC:org.eclipse.debug.ui.DebugPerspective
- persp.viewSC:org.eclipse.ant.ui.views.AntView
- persp.showIn:org.eclipse.egit.ui.RepositoriesView
- persp.actionSet:org.eclipse.debug.ui.breakpointActionSet
- persp.actionSet:org.eclipse.jdt.debug.ui.JDTDebugActionSet
- persp.newWizSC:org.eclipse.jdt.junit.wizards.NewTestCaseCreationWizard
- persp.actionSet:org.eclipse.jdt.junit.JUnitActionSet
- persp.showIn:org.eclipse.jdt.ui.PackageExplorer
- persp.showIn:org.eclipse.team.ui.GenericHistoryView
- persp.showIn:org.eclipse.ui.views.ResourceNavigator
- persp.showIn:org.eclipse.ui.navigator.ProjectExplorer
- persp.viewSC:org.eclipse.mylyn.tasks.ui.views.tasks
- persp.newWizSC:org.eclipse.mylyn.tasks.ui.wizards.new.repository.task
-
-
-
- org.eclipse.e4.primaryNavigationStack
- active
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.eclipse.e4.secondaryNavigationStack
-
-
-
-
-
-
-
- org.eclipse.e4.secondaryDataStack
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- View
- categoryTag:Help
-
-
-
-
- View
- categoryTag:General
-
- ViewMenu
- menuContribution:menu
-
-
-
-
-
-
- View
- categoryTag:Help
-
-
-
- org.eclipse.e4.primaryDataStack
- EditorStack
-
-
-
-
-
-
- View
- categoryTag:Java
- active
- activeOnClose
-
- ViewMenu
- menuContribution:menu
-
-
-
-
-
-
- View
- categoryTag:Java
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
-
- View
- categoryTag:General
-
- ViewMenu
- menuContribution:menu
-
-
-
-
-
-
- View
- categoryTag:Java
-
-
-
-
- View
- categoryTag:Java
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
-
- View
- categoryTag:General
-
- ViewMenu
- menuContribution:menu
-
-
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:Ant
-
-
-
-
- View
- categoryTag:Git
-
-
-
-
- View
- categoryTag:Java
-
-
-
-
-
- View
- categoryTag:Mylyn
-
- ViewMenu
- menuContribution:menu
-
-
-
-
-
- toolbarSeparator
-
-
-
- Draggable
-
-
-
- toolbarSeparator
-
-
-
- Draggable
-
-
- Draggable
-
-
- Draggable
-
-
- toolbarSeparator
-
-
-
- Draggable
-
-
-
- toolbarSeparator
-
-
-
- toolbarSeparator
-
-
-
- Draggable
-
-
- stretch
- SHOW_RESTORE_MENU
-
-
- Draggable
- HIDEABLE
- SHOW_RESTORE_MENU
-
-
-
-
- stretch
-
-
- Draggable
-
-
- Draggable
-
-
-
-
-
- TrimStack
- Draggable
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- platform:cocoa
-
-
-
-
-
-
- platform:cocoa
-
-
-
-
- platform:cocoa
-
-
-
-
-
- platform:cocoa
-
-
-
-
-
- platform:cocoa
-
-
-
-
-
- platform:cocoa
-
-
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
-
- platform:cocoa
-
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
-
-
-
-
- platform:cocoa
-
-
-
-
-
-
-
-
-
- platform:cocoa
-
-
-
-
-
-
- platform:cocoa
-
-
-
-
-
-
-
-
-
-
- platform:cocoa
-
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
-
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- platform:cocoa
-
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
-
-
- platform:cocoa
-
-
-
-
-
- platform:cocoa
-
-
-
-
-
-
-
- platform:cocoa
-
-
-
-
- platform:cocoa
-
-
-
-
-
-
-
-
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
-
-
-
-
-
- platform:cocoa
-
-
-
-
-
-
-
-
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
-
- platform:cocoa
-
-
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
-
-
- platform:cocoa
-
-
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
-
-
-
-
-
- platform:cocoa
-
-
-
-
- platform:cocoa
-
-
-
-
-
-
-
-
-
-
-
- platform:cocoa
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- platform:cocoa
-
-
-
- platform:cocoa
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- platform:cocoa
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Editor
-
-
-
-
- View
- categoryTag:Ant
-
-
-
-
- View
- categoryTag:Gradle
-
-
-
-
- View
- categoryTag:Gradle
-
-
-
-
- View
- categoryTag:Debug
-
-
-
-
- View
- categoryTag:Debug
-
-
-
-
- View
- categoryTag:Debug
-
-
-
-
- View
- categoryTag:Debug
-
-
-
-
- View
- categoryTag:Debug
-
-
-
-
- View
- categoryTag:Debug
-
-
-
-
- View
- categoryTag:Debug
-
-
-
-
- View
- categoryTag:Git
-
-
-
-
- View
- categoryTag:Git
-
-
-
-
- View
- categoryTag:Git
-
-
-
-
- View
- categoryTag:Git
-
-
-
-
- View
- categoryTag:Git
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:Help
-
-
-
-
- View
- categoryTag:Debug
-
-
-
-
- View
- categoryTag:Java
-
-
-
-
- View
- categoryTag:Java
-
-
-
-
- View
- categoryTag:Java
-
-
-
-
- View
- categoryTag:Java Browsing
-
-
-
-
- View
- categoryTag:Java Browsing
-
-
-
-
- View
- categoryTag:Java Browsing
-
-
-
-
- View
- categoryTag:Java Browsing
-
-
-
-
- View
- categoryTag:Java
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:Java
-
-
-
-
- View
- categoryTag:Java
-
-
-
-
- View
- categoryTag:Maven
-
-
-
-
- View
- categoryTag:Maven
-
-
-
-
- View
- categoryTag:Mylyn
-
-
-
-
- View
- categoryTag:Mylyn
-
-
-
-
- View
- categoryTag:Mylyn
-
-
-
-
- View
- categoryTag:Mylyn
-
-
-
-
- View
- categoryTag:Oomph
-
-
-
-
- View
- categoryTag:Code Recommenders
-
-
-
-
- View
- categoryTag:Code Recommenders
-
-
-
-
- View
- categoryTag:Code Recommenders
-
-
-
-
- View
- categoryTag:Code Recommenders
-
-
-
-
- View
- categoryTag:Code Recommenders
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:Team
-
-
-
-
- View
- categoryTag:Team
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:Help
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:General
-
-
-
-
- View
- categoryTag:XML
-
-
-
-
- View
- categoryTag:XML
-
-
-
-
-
-
- glue
- move_after:PerspectiveSpacer
- SHOW_RESTORE_MENU
-
-
- move_after:Spacer Glue
- HIDEABLE
- SHOW_RESTORE_MENU
-
-
- glue
- move_after:SearchField
- SHOW_RESTORE_MENU
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration
+ ModelMigrationProcessor.001
+
+
+
+
+
+
+
+ topLevel
+
+
+
+
+ persp.actionSet:org.eclipse.mylyn.doc.actionSet
+ persp.actionSet:org.eclipse.mylyn.tasks.ui.navigation
+ persp.actionSet:org.eclipse.ui.cheatsheets.actionSet
+ persp.actionSet:org.eclipse.search.searchActionSet
+ persp.actionSet:org.eclipse.ui.edit.text.actionSet.annotationNavigation
+ persp.actionSet:org.eclipse.ui.edit.text.actionSet.navigation
+ persp.actionSet:org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo
+ persp.actionSet:org.eclipse.ui.externaltools.ExternalToolsSet
+ persp.actionSet:org.eclipse.ui.actionSet.keyBindings
+ persp.actionSet:org.eclipse.ui.actionSet.openFiles
+ persp.actionSet:org.eclipse.debug.ui.launchActionSet
+ persp.actionSet:org.eclipse.jdt.ui.JavaActionSet
+ persp.actionSet:org.eclipse.jdt.ui.JavaElementCreationActionSet
+ persp.actionSet:org.eclipse.ui.NavigateActionSet
+ persp.viewSC:org.eclipse.jdt.ui.PackageExplorer
+ persp.viewSC:org.eclipse.jdt.ui.TypeHierarchy
+ persp.viewSC:org.eclipse.jdt.ui.SourceView
+ persp.viewSC:org.eclipse.jdt.ui.JavadocView
+ persp.viewSC:org.eclipse.search.ui.views.SearchView
+ persp.viewSC:org.eclipse.ui.console.ConsoleView
+ persp.viewSC:org.eclipse.ui.views.ContentOutline
+ persp.viewSC:org.eclipse.ui.views.ProblemView
+ persp.viewSC:org.eclipse.ui.views.ResourceNavigator
+ persp.viewSC:org.eclipse.ui.views.TaskList
+ persp.viewSC:org.eclipse.ui.views.ProgressView
+ persp.viewSC:org.eclipse.ui.navigator.ProjectExplorer
+ persp.viewSC:org.eclipse.ui.texteditor.TemplatesView
+ persp.viewSC:org.eclipse.pde.runtime.LogView
+ persp.newWizSC:org.eclipse.jdt.ui.wizards.JavaProjectWizard
+ persp.newWizSC:org.eclipse.jdt.ui.wizards.NewPackageCreationWizard
+ persp.newWizSC:org.eclipse.jdt.ui.wizards.NewClassCreationWizard
+ persp.newWizSC:org.eclipse.jdt.ui.wizards.NewInterfaceCreationWizard
+ persp.newWizSC:org.eclipse.jdt.ui.wizards.NewEnumCreationWizard
+ persp.newWizSC:org.eclipse.jdt.ui.wizards.NewAnnotationCreationWizard
+ persp.newWizSC:org.eclipse.jdt.ui.wizards.NewSourceFolderCreationWizard
+ persp.newWizSC:org.eclipse.jdt.ui.wizards.NewSnippetFileCreationWizard
+ persp.newWizSC:org.eclipse.jdt.ui.wizards.NewJavaWorkingSetWizard
+ persp.newWizSC:org.eclipse.ui.wizards.new.folder
+ persp.newWizSC:org.eclipse.ui.wizards.new.file
+ persp.newWizSC:org.eclipse.ui.editors.wizards.UntitledTextFileWizard
+ persp.perspSC:org.eclipse.jdt.ui.JavaBrowsingPerspective
+ persp.perspSC:org.eclipse.debug.ui.DebugPerspective
+ persp.viewSC:org.eclipse.ant.ui.views.AntView
+ persp.showIn:org.eclipse.egit.ui.RepositoriesView
+ persp.actionSet:org.eclipse.debug.ui.breakpointActionSet
+ persp.actionSet:org.eclipse.jdt.debug.ui.JDTDebugActionSet
+ persp.newWizSC:org.eclipse.jdt.junit.wizards.NewTestCaseCreationWizard
+ persp.actionSet:org.eclipse.jdt.junit.JUnitActionSet
+ persp.showIn:org.eclipse.jdt.ui.PackageExplorer
+ persp.showIn:org.eclipse.team.ui.GenericHistoryView
+ persp.showIn:org.eclipse.ui.views.ResourceNavigator
+ persp.showIn:org.eclipse.ui.navigator.ProjectExplorer
+ persp.viewSC:org.eclipse.mylyn.tasks.ui.views.tasks
+ persp.newWizSC:org.eclipse.mylyn.tasks.ui.wizards.new.repository.task
+
+
+
+ org.eclipse.e4.primaryNavigationStack
+ active
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.eclipse.e4.secondaryNavigationStack
+
+
+
+
+
+
+
+ org.eclipse.e4.secondaryDataStack
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ View
+ categoryTag:Help
+
+
+
+
+ View
+ categoryTag:General
+
+ ViewMenu
+ menuContribution:menu
+
+
+
+
+
+
+ View
+ categoryTag:Help
+
+
+
+ org.eclipse.e4.primaryDataStack
+ EditorStack
+
+
+
+
+
+
+ View
+ categoryTag:Java
+ active
+ activeOnClose
+
+ ViewMenu
+ menuContribution:menu
+
+
+
+
+
+
+ View
+ categoryTag:Java
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+
+ View
+ categoryTag:General
+
+ ViewMenu
+ menuContribution:menu
+
+
+
+
+
+
+ View
+ categoryTag:Java
+
+
+
+
+ View
+ categoryTag:Java
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+
+ View
+ categoryTag:General
+
+ ViewMenu
+ menuContribution:menu
+
+
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:Ant
+
+
+
+
+ View
+ categoryTag:Git
+
+
+
+
+ View
+ categoryTag:Java
+
+
+
+
+
+ View
+ categoryTag:Mylyn
+
+ ViewMenu
+ menuContribution:menu
+
+
+
+
+
+ toolbarSeparator
+
+
+
+ Draggable
+
+
+
+ toolbarSeparator
+
+
+
+ Draggable
+
+
+ Draggable
+
+
+ Draggable
+
+
+ toolbarSeparator
+
+
+
+ Draggable
+
+
+
+ toolbarSeparator
+
+
+
+ toolbarSeparator
+
+
+
+ Draggable
+
+
+ stretch
+ SHOW_RESTORE_MENU
+
+
+ Draggable
+ HIDEABLE
+ SHOW_RESTORE_MENU
+
+
+
+
+ stretch
+
+
+ Draggable
+
+
+ Draggable
+
+
+
+
+
+ TrimStack
+ Draggable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+ platform:cocoa
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ platform:cocoa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Editor
+
+
+
+
+ View
+ categoryTag:Ant
+
+
+
+
+ View
+ categoryTag:Gradle
+
+
+
+
+ View
+ categoryTag:Gradle
+
+
+
+
+ View
+ categoryTag:Debug
+
+
+
+
+ View
+ categoryTag:Debug
+
+
+
+
+ View
+ categoryTag:Debug
+
+
+
+
+ View
+ categoryTag:Debug
+
+
+
+
+ View
+ categoryTag:Debug
+
+
+
+
+ View
+ categoryTag:Debug
+
+
+
+
+ View
+ categoryTag:Debug
+
+
+
+
+ View
+ categoryTag:Git
+
+
+
+
+ View
+ categoryTag:Git
+
+
+
+
+ View
+ categoryTag:Git
+
+
+
+
+ View
+ categoryTag:Git
+
+
+
+
+ View
+ categoryTag:Git
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:Help
+
+
+
+
+ View
+ categoryTag:Debug
+
+
+
+
+ View
+ categoryTag:Java
+
+
+
+
+ View
+ categoryTag:Java
+
+
+
+
+ View
+ categoryTag:Java
+
+
+
+
+ View
+ categoryTag:Java Browsing
+
+
+
+
+ View
+ categoryTag:Java Browsing
+
+
+
+
+ View
+ categoryTag:Java Browsing
+
+
+
+
+ View
+ categoryTag:Java Browsing
+
+
+
+
+ View
+ categoryTag:Java
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:Java
+
+
+
+
+ View
+ categoryTag:Java
+
+
+
+
+ View
+ categoryTag:Maven
+
+
+
+
+ View
+ categoryTag:Maven
+
+
+
+
+ View
+ categoryTag:Mylyn
+
+
+
+
+ View
+ categoryTag:Mylyn
+
+
+
+
+ View
+ categoryTag:Mylyn
+
+
+
+
+ View
+ categoryTag:Mylyn
+
+
+
+
+ View
+ categoryTag:Oomph
+
+
+
+
+ View
+ categoryTag:Code Recommenders
+
+
+
+
+ View
+ categoryTag:Code Recommenders
+
+
+
+
+ View
+ categoryTag:Code Recommenders
+
+
+
+
+ View
+ categoryTag:Code Recommenders
+
+
+
+
+ View
+ categoryTag:Code Recommenders
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:Team
+
+
+
+
+ View
+ categoryTag:Team
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:Help
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:General
+
+
+
+
+ View
+ categoryTag:XML
+
+
+
+
+ View
+ categoryTag:XML
+
+
+
+
+
+
+ glue
+ move_after:PerspectiveSpacer
+ SHOW_RESTORE_MENU
+
+
+ move_after:Spacer Glue
+ HIDEABLE
+ SHOW_RESTORE_MENU
+
+
+ glue
+ move_after:SearchField
+ SHOW_RESTORE_MENU
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.metadata/.plugins/org.eclipse.epp.logging.aeri.ide/org.eclipse.epp.logging.aeri.ide.server/server-config.json b/.metadata/.plugins/org.eclipse.epp.logging.aeri.ide/org.eclipse.epp.logging.aeri.ide.server/server-config.json
index 56cef3e..b3453a5 100644
--- a/.metadata/.plugins/org.eclipse.epp.logging.aeri.ide/org.eclipse.epp.logging.aeri.ide.server/server-config.json
+++ b/.metadata/.plugins/org.eclipse.epp.logging.aeri.ide/org.eclipse.epp.logging.aeri.ide.server/server-config.json
@@ -1,70 +1,70 @@
-{
- "version": "v1",
- "title": "Eclipse Automated Error Reporting",
- "timestamp": 1478982549563,
- "ttl": 10080,
- "helpUrl": "https://dev.eclipse.org/recommenders/community/aeri/v2/help/",
- "feedbackUrl": "http://ctrlflow.com/automated-error-reporting",
- "aboutUrl": "https://wiki.eclipse.org/EPP/Logging",
- "submitUrl": "https://dev.eclipse.org/recommenders/community/confess/0.6/reports/",
- "maxReportSize": 262144,
- "problemsUrl": "https://www.eclipse.org/downloads/download.php?r\u003d1\u0026file\u003d/technology/epp/logging/problems.zip",
- "problemsTtl": 20160,
- "connectTimeout": 10,
- "socketTimeout": 10,
- "acceptedProducts": [
- "org.eclipse.*",
- "org.fordiac.*"
- ],
- "acceptedPlugins": [
- "org.apache.log4j.*",
- "org.eclipse.*",
- "org.fordiac.*"
- ],
- "acceptedPackages": [
- "ch.qos.*",
- "com.cforcoding.*",
- "com.google.*",
- "com.gradleware.tooling.*",
- "com.mountainminds.eclemma.*",
- "com.naef.*",
- "com.sun.*",
- "java.*",
- "javafx.*",
- "javax.*",
- "org.apache.*",
- "org.eclipse.*",
- "org.fordiac.*",
- "org.gradle.*",
- "org.jacoco.*",
- "org.osgi.*",
- "org.slf4j.*",
- "sun.*"
- ],
- "requiredPackages": [
- "com.cforcoding.*",
- "com.gradleware.tooling.*",
- "com.mountainminds.eclemma.*",
- "com.naef.*",
- "org.eclipse.*",
- "org.fordiac.*",
- "org.gradle.*",
- "org.jacoco.*"
- ],
- "acceptOtherPackages": true,
- "acceptUiFreezes": true,
- "ignoredStatuses": [
- ":java.io.IOException:There is not enough space on the disk",
- ":java.net.*:",
- "org.eclipse.core.filesystem::Could not delete*",
- "org.eclipse.core.filesystem::Could not move*",
- "org.eclipse.core.runtime::Invalid input url*",
- "org.eclipse.epp.mpc.ui:java.io.IOException:",
- "org.eclipse.equinox.p2.*::",
- "org.eclipse.jface:java.io.IOException:Unable to resolve plug-in*",
- "org.eclipse.oomph.setup.core:$org.apache.http.ConnectionClosedException:",
- "org.eclipse.pde.core::The current target platform contains errors*",
- "org.eclipse.ui::Conflicting handlers for*"
- ],
- "problemsZipLastDownloadTimestamp": 0
+{
+ "version": "v1",
+ "title": "Eclipse Automated Error Reporting",
+ "timestamp": 1478982549563,
+ "ttl": 10080,
+ "helpUrl": "https://dev.eclipse.org/recommenders/community/aeri/v2/help/",
+ "feedbackUrl": "http://ctrlflow.com/automated-error-reporting",
+ "aboutUrl": "https://wiki.eclipse.org/EPP/Logging",
+ "submitUrl": "https://dev.eclipse.org/recommenders/community/confess/0.6/reports/",
+ "maxReportSize": 262144,
+ "problemsUrl": "https://www.eclipse.org/downloads/download.php?r\u003d1\u0026file\u003d/technology/epp/logging/problems.zip",
+ "problemsTtl": 20160,
+ "connectTimeout": 10,
+ "socketTimeout": 10,
+ "acceptedProducts": [
+ "org.eclipse.*",
+ "org.fordiac.*"
+ ],
+ "acceptedPlugins": [
+ "org.apache.log4j.*",
+ "org.eclipse.*",
+ "org.fordiac.*"
+ ],
+ "acceptedPackages": [
+ "ch.qos.*",
+ "com.cforcoding.*",
+ "com.google.*",
+ "com.gradleware.tooling.*",
+ "com.mountainminds.eclemma.*",
+ "com.naef.*",
+ "com.sun.*",
+ "java.*",
+ "javafx.*",
+ "javax.*",
+ "org.apache.*",
+ "org.eclipse.*",
+ "org.fordiac.*",
+ "org.gradle.*",
+ "org.jacoco.*",
+ "org.osgi.*",
+ "org.slf4j.*",
+ "sun.*"
+ ],
+ "requiredPackages": [
+ "com.cforcoding.*",
+ "com.gradleware.tooling.*",
+ "com.mountainminds.eclemma.*",
+ "com.naef.*",
+ "org.eclipse.*",
+ "org.fordiac.*",
+ "org.gradle.*",
+ "org.jacoco.*"
+ ],
+ "acceptOtherPackages": true,
+ "acceptUiFreezes": true,
+ "ignoredStatuses": [
+ ":java.io.IOException:There is not enough space on the disk",
+ ":java.net.*:",
+ "org.eclipse.core.filesystem::Could not delete*",
+ "org.eclipse.core.filesystem::Could not move*",
+ "org.eclipse.core.runtime::Invalid input url*",
+ "org.eclipse.epp.mpc.ui:java.io.IOException:",
+ "org.eclipse.equinox.p2.*::",
+ "org.eclipse.jface:java.io.IOException:Unable to resolve plug-in*",
+ "org.eclipse.oomph.setup.core:$org.apache.http.ConnectionClosedException:",
+ "org.eclipse.pde.core::The current target platform contains errors*",
+ "org.eclipse.ui::Conflicting handlers for*"
+ ],
+ "problemsZipLastDownloadTimestamp": 0
}
\ No newline at end of file
diff --git a/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml b/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml
index a4ee3cb..6cd9562 100644
--- a/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml
+++ b/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml
@@ -1,2 +1,2 @@
-
-
+
+
diff --git a/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml b/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
index 9e390f5..8c365b7 100644
--- a/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
+++ b/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
@@ -1,2 +1,2 @@
-
-
+
+
diff --git a/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml b/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml
index c08c91a..d84bb1d 100644
--- a/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml
+++ b/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml
@@ -1,10 +1,10 @@
-
-
+
+
diff --git a/.metadata/.plugins/org.eclipse.m2e.logback.configuration/0.log b/.metadata/.plugins/org.eclipse.m2e.logback.configuration/0.log
index 6766dfa..2bbac51 100644
--- a/.metadata/.plugins/org.eclipse.m2e.logback.configuration/0.log
+++ b/.metadata/.plugins/org.eclipse.m2e.logback.configuration/0.log
@@ -1 +1 @@
-2016-11-12 15:29:07,113 [Worker-2] INFO c.g.t.t.d.PublishedGradleVersions - Gradle version information cache is not available. Remote download required.
+2016-11-12 15:29:07,113 [Worker-2] INFO c.g.t.t.d.PublishedGradleVersions - Gradle version information cache is not available. Remote download required.
diff --git a/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.7.0.20160603-1933.xml b/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.7.0.20160603-1933.xml
index e33758c..aea5414 100644
--- a/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.7.0.20160603-1933.xml
+++ b/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.7.0.20160603-1933.xml
@@ -1,43 +1,43 @@
-
-
-
- %date [%thread] %-5level %logger{35} - %msg%n
-
-
- OFF
-
-
-
-
- ${org.eclipse.m2e.log.dir}/0.log
-
- ${org.eclipse.m2e.log.dir}/%i.log
- 1
- 10
-
-
- 100MB
-
-
- %date [%thread] %-5level %logger{35} - %msg%n
-
-
-
-
-
- WARN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ %date [%thread] %-5level %logger{35} - %msg%n
+
+
+ OFF
+
+
+
+
+ ${org.eclipse.m2e.log.dir}/0.log
+
+ ${org.eclipse.m2e.log.dir}/%i.log
+ 1
+ 10
+
+
+ 100MB
+
+
+ %date [%thread] %-5level %logger{35} - %msg%n
+
+
+
+
+
+ WARN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.metadata/.plugins/org.eclipse.oomph.setup/workspace.setup b/.metadata/.plugins/org.eclipse.oomph.setup/workspace.setup
index 1f73e14..a1ef8f5 100644
--- a/.metadata/.plugins/org.eclipse.oomph.setup/workspace.setup
+++ b/.metadata/.plugins/org.eclipse.oomph.setup/workspace.setup
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
index f4d0d6c..6d8282b 100644
--- a/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
+++ b/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
@@ -1,11 +1,11 @@
-
-
+
+
diff --git a/.metadata/.plugins/org.eclipse.ui.intro/introstate b/.metadata/.plugins/org.eclipse.ui.intro/introstate
index 236d56c..bc63a5b 100644
--- a/.metadata/.plugins/org.eclipse.ui.intro/introstate
+++ b/.metadata/.plugins/org.eclipse.ui.intro/introstate
@@ -1,2 +1,2 @@
-
+
\ No newline at end of file
diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
index 851c296..9a8f2a9 100644
--- a/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
+++ b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
@@ -1,15 +1,15 @@
-
-
+
+
diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml b/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
index e044b18..78ad30b 100644
--- a/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
+++ b/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
@@ -1,4 +1,4 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/.metadata/version.ini b/.metadata/version.ini
index 92fbb79..117e7c8 100644
--- a/.metadata/version.ini
+++ b/.metadata/version.ini
@@ -1,3 +1,3 @@
-#Sat Nov 12 15:28:50 EST 2016
-org.eclipse.core.runtime=2
-org.eclipse.platform=4.6.1.v20160907-1200
+#Sat Nov 12 15:28:50 EST 2016
+org.eclipse.core.runtime=2
+org.eclipse.platform=4.6.1.v20160907-1200
diff --git a/.settings/oracle.eclipse.tools.webtier.ui.prefs b/.settings/oracle.eclipse.tools.webtier.ui.prefs
new file mode 100644
index 0000000..b0107e5
--- /dev/null
+++ b/.settings/oracle.eclipse.tools.webtier.ui.prefs
@@ -0,0 +1,5 @@
+_hiddenCategory_\:HTML=false
+_hiddenCategory_\:ManagedBeans=false
+_hiddenCategory_\:PageVariables=false
+_hiddenCategory_\:jsp11=false
+eclipse.preferences.version=1
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index f309f67..1ab2bb5 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,8 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
-org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.4
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index 82df264..4e6902e 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -1,5 +1,6 @@
-
+
+
diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml
index dfd38d9..a3bf73b 100644
--- a/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ b/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -1,8 +1,9 @@
-
+
-
+
+
diff --git a/.settings/org.eclipse.wst.validation.prefs b/.settings/org.eclipse.wst.validation.prefs
new file mode 100644
index 0000000..6f1cba6
--- /dev/null
+++ b/.settings/org.eclipse.wst.validation.prefs
@@ -0,0 +1,2 @@
+disabled=06target
+eclipse.preferences.version=1
diff --git a/CREDITS.md b/CREDITS.md
new file mode 100644
index 0000000..ce18637
--- /dev/null
+++ b/CREDITS.md
@@ -0,0 +1,25 @@
+# Credits
+We are using a wonderful set of artistic user icons provided by flaticon.com to customize our user experience!
+
+We would like to directly thank the following artists for their contributions:
+
+## Madebyoliver
+* Octopus
+* Snorkel
+* Like (The heart!)
+* Sweater
+* Aquarium
+* Fruit
+
+## Freepik
+* Gingerbread man
+* Flask
+* Diamond
+* Squirrel
+* Bird (the teal one!)
+
+## Pixel Buddha
+* Moon
+* Doughnut
+* Bird (the red one!)
+* Paint Brush
diff --git a/README.md b/README.md
index 6e1ee98..8ee797b 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Synchrony Financial Mobile Device Tracking System
+# [Synchrony Financial Mobile Device Tracking System](https://seniordesign.cfapps.io/html/webpages/)
In the Innovation Station at Synchrony Financial, applications are used by over 60 million cardholders across the US, and those customers use a huge variety of devices to access them. To make sure applications work on all devices they house hundreds of smart phones, tablets, and other connected devices to test with. The devices are lent to employees across the country for their individual testing needs.
The goal of this project is to build and design an application that allows employees to view a list of available devices, allow employees to request one of those devices, and for it to be shipped for their testing needs. The current goal of this project is to design this as a Java web application that will work proficiently on phones and desktops.
diff --git a/WebContent/META-INF/MANIFEST.MF b/WebContent/META-INF/MANIFEST.MF
index 5e94951..e29d8ee 100644
--- a/WebContent/META-INF/MANIFEST.MF
+++ b/WebContent/META-INF/MANIFEST.MF
@@ -1,3 +1,3 @@
Manifest-Version: 1.0
-Class-Path:
+Main-Class: com.main.Main
diff --git a/WebContent/html/css/stylesheet.css b/WebContent/html/css/stylesheet.css
index 8a50290..96e4450 100644
--- a/WebContent/html/css/stylesheet.css
+++ b/WebContent/html/css/stylesheet.css
@@ -28,6 +28,17 @@ div.displayDevice{
left: 300px;
}
+div.profileContainer{
+ display: inline-block;
+ position: absolute;
+ padding-left: 30px;
+ width: 100%;
+ height: 100%;
+ overflow: scroll;
+ left: 200px;
+ top: 70px;
+}
+
div.modal{
display:none;
position: fixed;
@@ -65,7 +76,7 @@ input[type=text]{
span.close{
- color: #aaa;
+ color: black;
float: right;
font-size: 28px;
font-weight: bold;
diff --git a/WebContent/html/imgs/cat.png b/WebContent/html/imgs/cat.png
new file mode 100644
index 0000000..23058ae
Binary files /dev/null and b/WebContent/html/imgs/cat.png differ
diff --git a/WebContent/html/imgs/cat_admin.png b/WebContent/html/imgs/cat_admin.png
new file mode 100644
index 0000000..f0bca6b
Binary files /dev/null and b/WebContent/html/imgs/cat_admin.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/license/license.pdf b/WebContent/html/imgs/my-icons-collection-128px/license/license.pdf
new file mode 100644
index 0000000..bdeedb7
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/license/license.pdf differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/1.png b/WebContent/html/imgs/my-icons-collection-128px/png/1.png
new file mode 100644
index 0000000..9be5f49
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/1.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/10.png b/WebContent/html/imgs/my-icons-collection-128px/png/10.png
new file mode 100644
index 0000000..9dfd441
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/10.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/11.png b/WebContent/html/imgs/my-icons-collection-128px/png/11.png
new file mode 100644
index 0000000..ad875be
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/11.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/12.png b/WebContent/html/imgs/my-icons-collection-128px/png/12.png
new file mode 100644
index 0000000..d8a94ea
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/12.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/13.png b/WebContent/html/imgs/my-icons-collection-128px/png/13.png
new file mode 100644
index 0000000..d3fafb2
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/13.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/14.png b/WebContent/html/imgs/my-icons-collection-128px/png/14.png
new file mode 100644
index 0000000..f2351fa
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/14.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/15.png b/WebContent/html/imgs/my-icons-collection-128px/png/15.png
new file mode 100644
index 0000000..4254a0d
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/15.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/2.png b/WebContent/html/imgs/my-icons-collection-128px/png/2.png
new file mode 100644
index 0000000..f3e7c18
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/2.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/3.png b/WebContent/html/imgs/my-icons-collection-128px/png/3.png
new file mode 100644
index 0000000..8dca2f2
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/3.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/4.png b/WebContent/html/imgs/my-icons-collection-128px/png/4.png
new file mode 100644
index 0000000..2cf1c5b
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/4.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/5.png b/WebContent/html/imgs/my-icons-collection-128px/png/5.png
new file mode 100644
index 0000000..337fbbc
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/5.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/6.png b/WebContent/html/imgs/my-icons-collection-128px/png/6.png
new file mode 100644
index 0000000..65a5304
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/6.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/7.png b/WebContent/html/imgs/my-icons-collection-128px/png/7.png
new file mode 100644
index 0000000..abf0291
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/7.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/8.png b/WebContent/html/imgs/my-icons-collection-128px/png/8.png
new file mode 100644
index 0000000..5127845
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/8.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/9.png b/WebContent/html/imgs/my-icons-collection-128px/png/9.png
new file mode 100644
index 0000000..dd78b84
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/9.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/license/license.pdf b/WebContent/html/imgs/my-icons-collection-32px/license/license.pdf
new file mode 100644
index 0000000..bdeedb7
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/license/license.pdf differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/png/1.png b/WebContent/html/imgs/my-icons-collection-32px/png/1.png
new file mode 100644
index 0000000..a199ffc
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/png/1.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/png/10.png b/WebContent/html/imgs/my-icons-collection-32px/png/10.png
new file mode 100644
index 0000000..36ef75b
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/png/10.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/png/11.png b/WebContent/html/imgs/my-icons-collection-32px/png/11.png
new file mode 100644
index 0000000..c6a7113
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/png/11.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/png/12.png b/WebContent/html/imgs/my-icons-collection-32px/png/12.png
new file mode 100644
index 0000000..0b43323
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/png/12.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/png/13.png b/WebContent/html/imgs/my-icons-collection-32px/png/13.png
new file mode 100644
index 0000000..0d091a0
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/png/13.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/png/14.png b/WebContent/html/imgs/my-icons-collection-32px/png/14.png
new file mode 100644
index 0000000..b572455
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/png/14.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/png/15.png b/WebContent/html/imgs/my-icons-collection-32px/png/15.png
new file mode 100644
index 0000000..ec6504a
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/png/15.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/png/2.png b/WebContent/html/imgs/my-icons-collection-32px/png/2.png
new file mode 100644
index 0000000..0ada903
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/png/2.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/png/3.png b/WebContent/html/imgs/my-icons-collection-32px/png/3.png
new file mode 100644
index 0000000..7402532
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/png/3.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/png/4.png b/WebContent/html/imgs/my-icons-collection-32px/png/4.png
new file mode 100644
index 0000000..779b87e
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/png/4.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/png/5.png b/WebContent/html/imgs/my-icons-collection-32px/png/5.png
new file mode 100644
index 0000000..6a1205c
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/png/5.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/png/6.png b/WebContent/html/imgs/my-icons-collection-32px/png/6.png
new file mode 100644
index 0000000..5c9a034
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/png/6.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/png/7.png b/WebContent/html/imgs/my-icons-collection-32px/png/7.png
new file mode 100644
index 0000000..6f964fe
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/png/7.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/png/8.png b/WebContent/html/imgs/my-icons-collection-32px/png/8.png
new file mode 100644
index 0000000..bab3e6f
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/png/8.png differ
diff --git a/WebContent/html/imgs/my-icons-collection-32px/png/9.png b/WebContent/html/imgs/my-icons-collection-32px/png/9.png
new file mode 100644
index 0000000..8b30fda
Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-32px/png/9.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/._readme.txt b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/._readme.txt
new file mode 100644
index 0000000..ac807b5
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/._readme.txt differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/css/._.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/css/._.DS_Store
new file mode 100644
index 0000000..09fa6bd
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/css/._.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/css/lib/._.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/css/lib/._.DS_Store
new file mode 100644
index 0000000..09fa6bd
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/css/lib/._.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/._.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/._.DS_Store
new file mode 100644
index 0000000..09fa6bd
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/._.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/control/._.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/control/._.DS_Store
new file mode 100644
index 0000000..09fa6bd
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/control/._.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/control/icon-select/._.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/control/icon-select/._.DS_Store
new file mode 100644
index 0000000..09fa6bd
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/control/icon-select/._.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/control/icon-select/._arrow.png b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/control/icon-select/._arrow.png
new file mode 100644
index 0000000..2b5d626
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/control/icon-select/._arrow.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._.DS_Store
new file mode 100644
index 0000000..09fa6bd
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._1.png b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._1.png
new file mode 100644
index 0000000..04aa6fe
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._1.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._10.png b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._10.png
new file mode 100644
index 0000000..1ebdde4
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._10.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._11.png b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._11.png
new file mode 100644
index 0000000..f71e42e
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._11.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._12.png b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._12.png
new file mode 100644
index 0000000..00e90f0
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._12.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._13.png b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._13.png
new file mode 100644
index 0000000..5ee54a9
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._13.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._14.png b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._14.png
new file mode 100644
index 0000000..d4fb45d
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._14.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._2.png b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._2.png
new file mode 100644
index 0000000..c01e107
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._2.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._3.png b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._3.png
new file mode 100644
index 0000000..1563182
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._3.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._4.png b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._4.png
new file mode 100644
index 0000000..e34d2f6
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._4.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._5.png b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._5.png
new file mode 100644
index 0000000..9641575
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._5.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._6.png b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._6.png
new file mode 100644
index 0000000..c4bae4e
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._6.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._7.png b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._7.png
new file mode 100644
index 0000000..0fe0cd2
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._7.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._8.png b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._8.png
new file mode 100644
index 0000000..3186a9f
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._8.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._9.png b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._9.png
new file mode 100644
index 0000000..a24f91b
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/images/icons/._9.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/lib/._.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/lib/._.DS_Store
new file mode 100644
index 0000000..09fa6bd
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/lib/._.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/lib/._iscroll.js b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/lib/._iscroll.js
new file mode 100644
index 0000000..cbfbf7e
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/lib/._iscroll.js differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/lib/control/._.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/lib/control/._.DS_Store
new file mode 100644
index 0000000..09fa6bd
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/__MACOSX/lib/control/._.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/css/.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/css/.DS_Store
new file mode 100644
index 0000000..e69c771
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/css/.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/css/lib/.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/css/lib/.DS_Store
new file mode 100644
index 0000000..fa064ce
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/css/lib/.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/css/lib/control/iconselect.css b/WebContent/html/javascript/iconselect.js-1.0/css/lib/control/iconselect.css
new file mode 100644
index 0000000..fe5ea25
--- /dev/null
+++ b/WebContent/html/javascript/iconselect.js-1.0/css/lib/control/iconselect.css
@@ -0,0 +1,129 @@
+/*
+To change this license header, choose License Headers in Project Properties.
+To change this template file, choose Tools | Templates
+and open the template in the editor.
+*/
+/*
+ Created on : Nov 28, 2013, 7:09:35 AM
+ Author : bugraozden
+*/
+
+.icon-select{
+ width:0px;
+ }
+
+ .icon-select .selected-box {
+
+ position: relative;
+ margin: 0px;
+ padding: 0px;
+ width: 70px; /* sil */
+ height: 60px; /* sil */
+ border: 1px solid #999999;
+ /*background-color: #FFFFFF;*/
+
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+
+ }
+
+ .icon-select .selected-box:hover {
+
+ position: relative;
+ margin: 0px;
+ padding: 0px;
+ width: 70px; /* sil */
+ height: 60px; /* sil */
+ border: 1px solid #000000;
+ background-color: #FFFFFF;
+
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+
+ }
+
+ .icon-select .selected-icon {
+
+ position: absolute;
+ margin: 0px;
+ padding: 0px;
+ top:5px;
+ left:5px;
+ width: 48px; /* sil */
+ height: 48px; /* sil */
+
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+
+ }
+
+ .icon-select .component-icon{
+ position: absolute;
+ bottom:5px;
+ right:4px;
+ }
+
+ .icon-select .box {
+
+ position: absolute;
+ top:0px;
+ left:71px;
+ margin: 0px;
+ padding: 0px;
+ width: 170px; /* sil */
+ height: 170px; /* sil */
+ border: 1px solid #EEEEEE;
+ background-color: #EEEEEE;
+
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+
+
+ overflow:auto;
+ /*
+ -webkit-overflow-scrolling: touch;
+ */
+
+ }
+
+ .icon-select .icon {
+ position: relative;
+ margin: 5px 0px 0px 5px;
+ padding: 0px;
+ width: 48px; /* sil */
+ height: 48px; /* sil */
+ border: 1px solid #CCCCCC;
+ background-color: #FFFFFF;
+
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+
+ overflow:hidden;
+ float: left;
+ }
+
+ .icon-select .icon:hover {
+ border: 1px solid #000000;
+ }
+
+ .icon-select .icon.selected {
+ position: relative;
+ margin: 5px 0px 0px 5px;
+ padding: 0px;
+ width: 48px; /* sil */
+ height: 48px; /* sil */
+ border: 1px solid #EEEEEE;
+ background-color: #EEEEEE;
+
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+
+ overflow:hidden;
+ float: left;
+ }
\ No newline at end of file
diff --git a/WebContent/html/javascript/iconselect.js-1.0/icon-select-example.html b/WebContent/html/javascript/iconselect.js-1.0/icon-select-example.html
new file mode 100644
index 0000000..00528eb
--- /dev/null
+++ b/WebContent/html/javascript/iconselect.js-1.0/icon-select-example.html
@@ -0,0 +1,60 @@
+
+
+
+ Icon/Image Select: Basic Example (Javascript)
+
+
+
+
+
+
+
+
+
+
+
+ Icon/Image Select: Basic Example (Javascript)
+
+
+
+
+
+
+
diff --git a/WebContent/html/javascript/iconselect.js-1.0/icon-select-example2.html b/WebContent/html/javascript/iconselect.js-1.0/icon-select-example2.html
new file mode 100644
index 0000000..299f568
--- /dev/null
+++ b/WebContent/html/javascript/iconselect.js-1.0/icon-select-example2.html
@@ -0,0 +1,57 @@
+
+
+
+ Icon/Image Select: Nano Example (Javascript)
+
+
+
+
+
+
+
+
+
+
+
+ Icon/Image Select: Nano Example (Javascript)
+
+
+
+
+
diff --git a/WebContent/html/javascript/iconselect.js-1.0/icon-select-example3.html b/WebContent/html/javascript/iconselect.js-1.0/icon-select-example3.html
new file mode 100644
index 0000000..29d8fb0
--- /dev/null
+++ b/WebContent/html/javascript/iconselect.js-1.0/icon-select-example3.html
@@ -0,0 +1,57 @@
+
+
+
+ Icon/Image Select: Vectoral Example (Javascript)
+
+
+
+
+
+
+
+
+
+
+
+ Icon/Image Select: Vectoral Example (Javascript)
+
+
+
+
+
diff --git a/WebContent/html/javascript/iconselect.js-1.0/icon-select-example4.html b/WebContent/html/javascript/iconselect.js-1.0/icon-select-example4.html
new file mode 100644
index 0000000..c4c6df0
--- /dev/null
+++ b/WebContent/html/javascript/iconselect.js-1.0/icon-select-example4.html
@@ -0,0 +1,57 @@
+
+
+
+ Icon/Image Select: Horizontal Example (Javascript)
+
+
+
+
+
+
+
+
+
+
+
+ Icon/Image Select: Horizontal Example (Javascript)
+
+
+
+
+
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/images/.DS_Store
new file mode 100644
index 0000000..fc019e8
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/control/.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/images/control/.DS_Store
new file mode 100644
index 0000000..50dfa3d
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/control/.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/control/icon-select/.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/images/control/icon-select/.DS_Store
new file mode 100644
index 0000000..86ce6b4
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/control/icon-select/.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/control/icon-select/arrow.png b/WebContent/html/javascript/iconselect.js-1.0/images/control/icon-select/arrow.png
new file mode 100644
index 0000000..4917ceb
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/control/icon-select/arrow.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/icons/.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/images/icons/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/icons/.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/icons/1.png b/WebContent/html/javascript/iconselect.js-1.0/images/icons/1.png
new file mode 100644
index 0000000..d0f3dbb
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/icons/1.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/icons/10.png b/WebContent/html/javascript/iconselect.js-1.0/images/icons/10.png
new file mode 100644
index 0000000..9a768a2
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/icons/10.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/icons/11.png b/WebContent/html/javascript/iconselect.js-1.0/images/icons/11.png
new file mode 100644
index 0000000..ab66234
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/icons/11.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/icons/12.png b/WebContent/html/javascript/iconselect.js-1.0/images/icons/12.png
new file mode 100644
index 0000000..898ef18
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/icons/12.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/icons/13.png b/WebContent/html/javascript/iconselect.js-1.0/images/icons/13.png
new file mode 100644
index 0000000..8a7845d
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/icons/13.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/icons/14.png b/WebContent/html/javascript/iconselect.js-1.0/images/icons/14.png
new file mode 100644
index 0000000..d322297
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/icons/14.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/icons/2.png b/WebContent/html/javascript/iconselect.js-1.0/images/icons/2.png
new file mode 100644
index 0000000..98906de
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/icons/2.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/icons/3.png b/WebContent/html/javascript/iconselect.js-1.0/images/icons/3.png
new file mode 100644
index 0000000..a56adfe
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/icons/3.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/icons/4.png b/WebContent/html/javascript/iconselect.js-1.0/images/icons/4.png
new file mode 100644
index 0000000..6870eac
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/icons/4.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/icons/5.png b/WebContent/html/javascript/iconselect.js-1.0/images/icons/5.png
new file mode 100644
index 0000000..f753084
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/icons/5.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/icons/6.png b/WebContent/html/javascript/iconselect.js-1.0/images/icons/6.png
new file mode 100644
index 0000000..ca9f8d3
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/icons/6.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/icons/7.png b/WebContent/html/javascript/iconselect.js-1.0/images/icons/7.png
new file mode 100644
index 0000000..2d0b685
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/icons/7.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/icons/8.png b/WebContent/html/javascript/iconselect.js-1.0/images/icons/8.png
new file mode 100644
index 0000000..23766e8
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/icons/8.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/images/icons/9.png b/WebContent/html/javascript/iconselect.js-1.0/images/icons/9.png
new file mode 100644
index 0000000..663ab69
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/images/icons/9.png differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/lib/.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/lib/.DS_Store
new file mode 100644
index 0000000..8d15528
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/lib/.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/lib/control/.DS_Store b/WebContent/html/javascript/iconselect.js-1.0/lib/control/.DS_Store
new file mode 100644
index 0000000..fafc36b
Binary files /dev/null and b/WebContent/html/javascript/iconselect.js-1.0/lib/control/.DS_Store differ
diff --git a/WebContent/html/javascript/iconselect.js-1.0/lib/control/iconselect.js b/WebContent/html/javascript/iconselect.js-1.0/lib/control/iconselect.js
new file mode 100644
index 0000000..317185f
--- /dev/null
+++ b/WebContent/html/javascript/iconselect.js-1.0/lib/control/iconselect.js
@@ -0,0 +1,322 @@
+
+/**
+ *
+ * Created with NetBeans IDE
+ *
+ * Code : Icon Select JS
+ * Version : 1.0
+ *
+ * User : Bugra OZDEN
+ * Site : http://www.bugraozden.com
+ * Mail : bugra.ozden@gmail.com
+ *
+ * Date : 10/30/13
+ * Time : 01:10 PM
+ *
+ */
+
+IconSelect.DEFAULT = {};
+IconSelect.DEFAULT.SELECTED_ICON_WIDTH = 48;
+IconSelect.DEFAULT.SELECTED_ICON_HEIGHT = 48;
+IconSelect.DEFAULT.SELECTED_BOX_PADDING = 1;
+IconSelect.DEFAULT.SELECTED_BOX_PADDING_RIGHT = 12;
+IconSelect.DEFAULT.ICONS_WIDTH = 32;
+IconSelect.DEFAULT.ICONS_HEIGHT = 32;
+IconSelect.DEFAULT.BOX_ICON_SPACE = 1;
+IconSelect.DEFAULT.HORIZONTAL_ICON_NUMBER = 3;
+IconSelect.DEFAULT.VECTORAL_ICON_NUMBER = 3;
+
+IconSelect.COMPONENT_ICON_FILE_PATH = "../javascript/iconselect.js-1.0/images/control/icon-select/arrow.png";
+
+function IconSelect($$elementID, $$parameters) {
+
+ var _icons = [];
+ var _selectedIndex = -1;
+ var _boxScroll;
+
+ var _default = IconSelect.DEFAULT;
+
+ function _init() {
+
+ //parametreler boÅŸ gelirse
+ if(!$$parameters) $$parameters = {};
+ //En üst elementi seç
+ if(_View.setIconSelectElement($$elementID)){
+
+ //set parameters
+ $$parameters = _Model.checkParameters($$parameters);
+ //create UI
+ var ui = _View.createUI($$parameters, $$elementID);
+ //basıldığında göster/gizle
+ _View.iconSelectElement.onclick = function(){
+ _View.showBox();
+ };
+
+ //Başlangıçta gizle
+ _View.showBox(false);
+
+ //Nesneye basıldığında gizlemeyi iptal et.
+ _View.iconSelectElement.addEventListener('click', function($event){
+ $event.stopPropagation();
+ });
+
+ //dışarı basıldığında gizle.
+ window.addEventListener('click', function(){
+ _View.showBox(false);
+ });
+
+ }else{
+ alert("Element not found.");
+ }
+
+ }
+
+ //Tüm iconları yeniden yükle.
+ this.refresh = function($icons){
+
+ _icons = [];
+
+ var setSelectedIndex = this.setSelectedIndex;
+
+ for(var i = 0; i < $icons.length; i++){
+ $icons[i].element = _View.createIcon($icons[i].iconFilePath, $icons[i].iconValue, i, $$parameters);
+ $icons[i].element.onclick = function(){
+ setSelectedIndex(this.childNodes[0].getAttribute('icon-index'));
+
+ };
+ _icons.push($icons[i]);
+
+ }
+
+ var horizontalIconNumber = Math.round(($icons.length) / $$parameters.vectoralIconNumber);
+
+ _View.boxElement.style.height = (($$parameters.iconsHeight + 2) * horizontalIconNumber) +
+ ((horizontalIconNumber + 1) * $$parameters.boxIconSpace);
+ this.setSelectedIndex(0);
+
+ };
+
+ //icon listesini al.
+ this.getIcons = function(){ return _icons; };
+
+ //iconu seçili hale gelir.
+ this.setSelectedIndex = function($index){
+
+ var icon;
+
+ if(_icons.length > $index)
+ icon = _icons[$index];
+
+ if(icon){
+ //eski icondan seçilme özelliğini kaldır.
+ if(_selectedIndex != -1) _icons[_selectedIndex].element.setAttribute('class','icon');
+ _selectedIndex = $index;
+ _View.selectedIconImgElement.setAttribute('src', icon.iconFilePath);
+ if(_selectedIndex != -1) _icons[_selectedIndex].element.setAttribute('class','icon selected');
+ if(_selectedIndex != -1) $('#profimg').attr("src","../imgs/my-icons-collection-128px/png/" + icon.iconValue + ".png");
+ }
+
+ _View.iconSelectElement.dispatchEvent(new Event('changed'));
+
+ //_View.showBox(false);
+
+ };
+
+ this.getSelectedIndex = function(){ return _selectedIndex; };
+ this.getSelectedValue = function(){ return _icons[_selectedIndex].iconValue };
+ this.getSelectedFilePath = function(){ return _icons[_selectedIndex].iconFilePath };
+
+
+
+ //### VIEW CLASS ###
+
+ function _View(){}
+
+ _View.iconSelectElement;
+ _View.boxElement;
+ _View.boxScrollElement;
+ _View.selectedIconImgElement;
+ _View.selectedIconElement;
+
+ _View.showBox = function($isShown){
+
+ if($isShown == null) {
+ $isShown = (_View.boxElement.style.display == "none") ? true : false;
+ }
+
+ if($isShown) {
+ _View.boxElement.style.display = "block";
+ _View.boxScrollElement.style.display = "block";
+ _boxScroll = (_boxScroll) ? _boxScroll : new iScroll($$elementID + "-box-scroll");
+ }else{
+ _View.boxElement.style.display = "none";
+ _View.boxScrollElement.style.display = "none";
+ }
+
+ _View.boxElement.style.display = ($isShown) ? "block" : "none";
+
+
+
+ };
+
+ _View.setIconSelectElement = function($elementID){
+ _View.iconSelectElement = document.getElementById($elementID);
+ return _View.iconSelectElement;
+ };
+
+ _View.clearUI = function(){
+ _View.iconSelectElement.innerHTML = "";
+ };
+
+ _View.clearIcons = function(){
+ _View.boxElement.innerHTML = "";
+ };
+
+ _View.createUI = function($parameters){
+
+ /* HTML MODEL
+
+
+
+ */
+
+ _View.clearUI();
+
+ _View.iconSelectElement.setAttribute('class', 'icon-select');
+
+ var selectedBoxElement = document.createElement('div');
+ selectedBoxElement.setAttribute('class' ,'selected-box');
+
+ var selectedIconElement = document.createElement('div');
+ selectedIconElement.setAttribute('class' ,'selected-icon');
+
+ _View.selectedIconImgElement = document.createElement('img');
+ _View.selectedIconImgElement.setAttribute('src', '');
+ selectedIconElement.appendChild(_View.selectedIconImgElement);
+
+ var componentIconElement = document.createElement('div');
+ componentIconElement.setAttribute('class', 'component-icon');
+
+ var componentIconImgElement = document.createElement('img');
+ componentIconImgElement.setAttribute('src', IconSelect.COMPONENT_ICON_FILE_PATH );
+ componentIconElement.appendChild(componentIconImgElement);
+
+ _View.boxScrollElement = document.createElement('div');
+ _View.boxScrollElement.setAttribute('id',$$elementID + "-box-scroll");
+ _View.boxScrollElement.setAttribute('class', 'box');
+
+ _View.boxElement = document.createElement('div');
+
+ //_View.boxElement.setAttribute('class', 'box');
+ _View.boxScrollElement.appendChild(_View.boxElement);
+
+ _View.selectedIconImgElement.setAttribute('width', $parameters.selectedIconWidth);
+ _View.selectedIconImgElement.setAttribute('height', $parameters.selectedIconHeight);
+ selectedIconElement.style.width = $parameters.selectedIconWidth;
+ selectedIconElement.style.height = $parameters.selectedIconHeight;
+ selectedBoxElement.style.width = $parameters.selectedIconWidth + $parameters.selectedBoxPadding + $parameters.selectedBoxPaddingRight;
+ selectedBoxElement.style.height = $parameters.selectedIconHeight + ($parameters.selectedBoxPadding * 2);
+ selectedIconElement.style.top = $parameters.selectedBoxPadding;
+ selectedIconElement.style.left = $parameters.selectedBoxPadding;
+ componentIconElement.style.bottom = 4 + $parameters.selectedBoxPadding;
+
+ _View.boxScrollElement.style.left = parseInt(selectedBoxElement.style.width) + 1;
+
+ _View.boxScrollElement.style.width = (($parameters.iconsWidth + 2) * $parameters.vectoralIconNumber) +
+ (($parameters.vectoralIconNumber + 1) * $parameters.boxIconSpace);
+ _View.boxScrollElement.style.height = (($parameters.iconsHeight + 2) * $parameters.horizontalIconNumber) +
+ (($parameters.horizontalIconNumber + 1) * $parameters.boxIconSpace);
+
+ _View.boxElement.style.left = _View.boxScrollElement.style.left;
+ _View.boxElement.style.width = _View.boxScrollElement.style.width;
+
+ _View.iconSelectElement.appendChild(selectedBoxElement);
+ selectedBoxElement.appendChild(selectedIconElement);
+ selectedBoxElement.appendChild(componentIconElement);
+ selectedBoxElement.appendChild(_View.boxScrollElement);
+
+
+ var results = {};
+ results['iconSelectElement'] = _View.iconSelectElement;
+ results['selectedBoxElement'] = selectedBoxElement;
+ results['selectedIconElement'] = selectedIconElement;
+ results['selectedIconImgElement'] = _View.selectedIconImgElement;
+ results['componentIconElement'] = componentIconElement;
+ results['componentIconImgElement'] = componentIconImgElement;
+
+ return results;
+
+
+ //trigger: created ( run setValues )
+
+ };
+
+ _View.createIcon = function($iconFilePath, $iconValue, $index, $parameters){
+
+ /* HTML MODEL
+
+ 
+
+ */
+
+ var iconElement = document.createElement('div');
+ iconElement.setAttribute('class', 'icon');
+ iconElement.style.width = $parameters.iconsWidth;
+ iconElement.style.height = $parameters.iconsHeight;
+ iconElement.style.marginLeft = $parameters.boxIconSpace;
+ iconElement.style.marginTop = $parameters.boxIconSpace;
+
+ var iconImgElement = document.createElement('img');
+ iconImgElement.setAttribute('src', $iconFilePath);
+ iconImgElement.setAttribute('icon-value', $iconValue);
+ iconImgElement.setAttribute('icon-index', $index);
+ iconImgElement.setAttribute('width', $parameters.iconsWidth);
+ iconImgElement.setAttribute('height', $parameters.iconsHeight);
+
+ iconElement.appendChild(iconImgElement);
+ _View.boxElement.appendChild(iconElement);
+
+ return iconElement;
+
+ };
+
+ //### MODEL CLASS ###
+
+ function _Model(){}
+
+ //TODO: params değişkenini kaldır yeni oluştursun.
+ _Model.checkParameters = function($parameters){
+
+ $parameters.selectedIconWidth = ($parameters.selectedIconWidth) ? $parameters.selectedIconWidth : _default.SELECTED_ICON_WIDTH;
+ $parameters.selectedIconHeight = ($parameters.selectedIconHeight) ? $parameters.selectedIconHeight : _default.SELECTED_ICON_HEIGHT;
+ $parameters.selectedBoxPadding = ($parameters.selectedBoxPadding) ? $parameters.selectedBoxPadding : _default.SELECTED_BOX_PADDING;
+ $parameters.selectedBoxPaddingRight = ($parameters.selectedBoxPaddingRight) ? $parameters.selectedBoxPaddingRight : _default.SELECTED_BOX_PADDING_RIGHT;
+ $parameters.iconsWidth = ($parameters.iconsWidth) ? $parameters.iconsWidth : _default.ICONS_WIDTH;
+ $parameters.iconsHeight = ($parameters.iconsHeight) ? $parameters.iconsHeight : _default.ICONS_HEIGHT;
+ $parameters.boxIconSpace = ($parameters.boxIconSpace) ? $parameters.boxIconSpace : _default.BOX_ICON_SPACE;
+ $parameters.vectoralIconNumber = ($parameters.vectoralIconNumber) ? $parameters.vectoralIconNumber : _default.VECTORAL_ICON_NUMBER;
+ $parameters.horizontalIconNumber = ($parameters.horizontalIconNumber) ? $parameters.horizontalIconNumber : _default.HORIZONTAL_ICON_NUMBER;
+
+ return $parameters;
+
+ };
+
+ _init();
+}
\ No newline at end of file
diff --git a/WebContent/html/javascript/iconselect.js-1.0/lib/iscroll-license.txt b/WebContent/html/javascript/iconselect.js-1.0/lib/iscroll-license.txt
new file mode 100644
index 0000000..1c54a54
--- /dev/null
+++ b/WebContent/html/javascript/iconselect.js-1.0/lib/iscroll-license.txt
@@ -0,0 +1,22 @@
+Copyright (c) 2012 Matteo Spinelli, http://cubiq.org/
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/WebContent/html/javascript/iconselect.js-1.0/lib/iscroll.js b/WebContent/html/javascript/iconselect.js-1.0/lib/iscroll.js
new file mode 100644
index 0000000..8222de0
--- /dev/null
+++ b/WebContent/html/javascript/iconselect.js-1.0/lib/iscroll.js
@@ -0,0 +1,1104 @@
+/*!
+ * iScroll v4.2.5 ~ Copyright (c) 2012 Matteo Spinelli, http://cubiq.org
+ * Released under MIT license, http://cubiq.org/license
+ */
+(function(window, doc){
+var m = Math,
+ dummyStyle = doc.createElement('div').style,
+ vendor = (function () {
+ var vendors = 't,webkitT,MozT,msT,OT'.split(','),
+ t,
+ i = 0,
+ l = vendors.length;
+
+ for ( ; i < l; i++ ) {
+ t = vendors[i] + 'ransform';
+ if ( t in dummyStyle ) {
+ return vendors[i].substr(0, vendors[i].length - 1);
+ }
+ }
+
+ return false;
+ })(),
+ cssVendor = vendor ? '-' + vendor.toLowerCase() + '-' : '',
+
+ // Style properties
+ transform = prefixStyle('transform'),
+ transitionProperty = prefixStyle('transitionProperty'),
+ transitionDuration = prefixStyle('transitionDuration'),
+ transformOrigin = prefixStyle('transformOrigin'),
+ transitionTimingFunction = prefixStyle('transitionTimingFunction'),
+ transitionDelay = prefixStyle('transitionDelay'),
+
+ // Browser capabilities
+ isAndroid = (/android/gi).test(navigator.appVersion),
+ isIDevice = (/iphone|ipad/gi).test(navigator.appVersion),
+ isTouchPad = (/hp-tablet/gi).test(navigator.appVersion),
+
+ has3d = prefixStyle('perspective') in dummyStyle,
+ hasTouch = 'ontouchstart' in window && !isTouchPad,
+ hasTransform = vendor !== false,
+ hasTransitionEnd = prefixStyle('transition') in dummyStyle,
+
+ RESIZE_EV = 'onorientationchange' in window ? 'orientationchange' : 'resize',
+ START_EV = hasTouch ? 'touchstart' : 'mousedown',
+ MOVE_EV = hasTouch ? 'touchmove' : 'mousemove',
+ END_EV = hasTouch ? 'touchend' : 'mouseup',
+ CANCEL_EV = hasTouch ? 'touchcancel' : 'mouseup',
+ TRNEND_EV = (function () {
+ if ( vendor === false ) return false;
+
+ var transitionEnd = {
+ '' : 'transitionend',
+ 'webkit' : 'webkitTransitionEnd',
+ 'Moz' : 'transitionend',
+ 'O' : 'otransitionend',
+ 'ms' : 'MSTransitionEnd'
+ };
+
+ return transitionEnd[vendor];
+ })(),
+
+ nextFrame = (function() {
+ return window.requestAnimationFrame ||
+ window.webkitRequestAnimationFrame ||
+ window.mozRequestAnimationFrame ||
+ window.oRequestAnimationFrame ||
+ window.msRequestAnimationFrame ||
+ function(callback) { return setTimeout(callback, 1); };
+ })(),
+ cancelFrame = (function () {
+ return window.cancelRequestAnimationFrame ||
+ window.webkitCancelAnimationFrame ||
+ window.webkitCancelRequestAnimationFrame ||
+ window.mozCancelRequestAnimationFrame ||
+ window.oCancelRequestAnimationFrame ||
+ window.msCancelRequestAnimationFrame ||
+ clearTimeout;
+ })(),
+
+ // Helpers
+ translateZ = has3d ? ' translateZ(0)' : '',
+
+ // Constructor
+ iScroll = function (el, options) {
+ var that = this,
+ i;
+
+ that.wrapper = typeof el == 'object' ? el : doc.getElementById(el);
+ that.wrapper.style.overflow = 'hidden';
+ that.scroller = that.wrapper.children[0];
+
+ // Default options
+ that.options = {
+ hScroll: true,
+ vScroll: true,
+ x: 0,
+ y: 0,
+ bounce: true,
+ bounceLock: false,
+ momentum: true,
+ lockDirection: true,
+ useTransform: true,
+ useTransition: false,
+ topOffset: 0,
+ checkDOMChanges: false, // Experimental
+ handleClick: true,
+
+ // Scrollbar
+ hScrollbar: true,
+ vScrollbar: true,
+ fixedScrollbar: isAndroid,
+ hideScrollbar: isIDevice,
+ fadeScrollbar: isIDevice && has3d,
+ scrollbarClass: '',
+
+ // Zoom
+ zoom: false,
+ zoomMin: 1,
+ zoomMax: 4,
+ doubleTapZoom: 2,
+ wheelAction: 'scroll',
+
+ // Snap
+ snap: false,
+ snapThreshold: 1,
+
+ // Events
+ onRefresh: null,
+ onBeforeScrollStart: function (e) { e.preventDefault(); },
+ onScrollStart: null,
+ onBeforeScrollMove: null,
+ onScrollMove: null,
+ onBeforeScrollEnd: null,
+ onScrollEnd: null,
+ onTouchEnd: null,
+ onDestroy: null,
+ onZoomStart: null,
+ onZoom: null,
+ onZoomEnd: null
+ };
+
+ // User defined options
+ for (i in options) that.options[i] = options[i];
+
+ // Set starting position
+ that.x = that.options.x;
+ that.y = that.options.y;
+
+ // Normalize options
+ that.options.useTransform = hasTransform && that.options.useTransform;
+ that.options.hScrollbar = that.options.hScroll && that.options.hScrollbar;
+ that.options.vScrollbar = that.options.vScroll && that.options.vScrollbar;
+ that.options.zoom = that.options.useTransform && that.options.zoom;
+ that.options.useTransition = hasTransitionEnd && that.options.useTransition;
+
+ // Helpers FIX ANDROID BUG!
+ // translate3d and scale doesn't work together!
+ // Ignoring 3d ONLY WHEN YOU SET that.options.zoom
+ if ( that.options.zoom && isAndroid ){
+ translateZ = '';
+ }
+
+ // Set some default styles
+ that.scroller.style[transitionProperty] = that.options.useTransform ? cssVendor + 'transform' : 'top left';
+ that.scroller.style[transitionDuration] = '0';
+ that.scroller.style[transformOrigin] = '0 0';
+ if (that.options.useTransition) that.scroller.style[transitionTimingFunction] = 'cubic-bezier(0.33,0.66,0.66,1)';
+
+ if (that.options.useTransform) that.scroller.style[transform] = 'translate(' + that.x + 'px,' + that.y + 'px)' + translateZ;
+ else that.scroller.style.cssText += ';position:absolute;top:' + that.y + 'px;left:' + that.x + 'px';
+
+ if (that.options.useTransition) that.options.fixedScrollbar = true;
+
+ that.refresh();
+
+ that._bind(RESIZE_EV, window);
+ that._bind(START_EV);
+ if (!hasTouch) {
+ if (that.options.wheelAction != 'none') {
+ that._bind('DOMMouseScroll');
+ that._bind('mousewheel');
+ }
+ }
+
+ if (that.options.checkDOMChanges) that.checkDOMTime = setInterval(function () {
+ that._checkDOMChanges();
+ }, 500);
+ };
+
+// Prototype
+iScroll.prototype = {
+ enabled: true,
+ x: 0,
+ y: 0,
+ steps: [],
+ scale: 1,
+ currPageX: 0, currPageY: 0,
+ pagesX: [], pagesY: [],
+ aniTime: null,
+ wheelZoomCount: 0,
+
+ handleEvent: function (e) {
+ var that = this;
+ switch(e.type) {
+ case START_EV:
+ if (!hasTouch && e.button !== 0) return;
+ that._start(e);
+ break;
+ case MOVE_EV: that._move(e); break;
+ case END_EV:
+ case CANCEL_EV: that._end(e); break;
+ case RESIZE_EV: that._resize(); break;
+ case 'DOMMouseScroll': case 'mousewheel': that._wheel(e); break;
+ case TRNEND_EV: that._transitionEnd(e); break;
+ }
+ },
+
+ _checkDOMChanges: function () {
+ if (this.moved || this.zoomed || this.animating ||
+ (this.scrollerW == this.scroller.offsetWidth * this.scale && this.scrollerH == this.scroller.offsetHeight * this.scale)) return;
+
+ this.refresh();
+ },
+
+ _scrollbar: function (dir) {
+ var that = this,
+ bar;
+
+ if (!that[dir + 'Scrollbar']) {
+ if (that[dir + 'ScrollbarWrapper']) {
+ if (hasTransform) that[dir + 'ScrollbarIndicator'].style[transform] = '';
+ that[dir + 'ScrollbarWrapper'].parentNode.removeChild(that[dir + 'ScrollbarWrapper']);
+ that[dir + 'ScrollbarWrapper'] = null;
+ that[dir + 'ScrollbarIndicator'] = null;
+ }
+
+ return;
+ }
+
+ if (!that[dir + 'ScrollbarWrapper']) {
+ // Create the scrollbar wrapper
+ bar = doc.createElement('div');
+
+ if (that.options.scrollbarClass) bar.className = that.options.scrollbarClass + dir.toUpperCase();
+ else bar.style.cssText = 'position:absolute;z-index:100;' + (dir == 'h' ? 'height:7px;bottom:1px;left:2px;right:' + (that.vScrollbar ? '7' : '2') + 'px' : 'width:7px;bottom:' + (that.hScrollbar ? '7' : '2') + 'px;top:2px;right:1px');
+
+ bar.style.cssText += ';pointer-events:none;' + cssVendor + 'transition-property:opacity;' + cssVendor + 'transition-duration:' + (that.options.fadeScrollbar ? '350ms' : '0') + ';overflow:hidden;opacity:' + (that.options.hideScrollbar ? '0' : '1');
+
+ that.wrapper.appendChild(bar);
+ that[dir + 'ScrollbarWrapper'] = bar;
+
+ // Create the scrollbar indicator
+ bar = doc.createElement('div');
+ if (!that.options.scrollbarClass) {
+ bar.style.cssText = 'position:absolute;z-index:100;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);' + cssVendor + 'background-clip:padding-box;' + cssVendor + 'box-sizing:border-box;' + (dir == 'h' ? 'height:100%' : 'width:100%') + ';' + cssVendor + 'border-radius:3px;border-radius:3px';
+ }
+ bar.style.cssText += ';pointer-events:none;' + cssVendor + 'transition-property:' + cssVendor + 'transform;' + cssVendor + 'transition-timing-function:cubic-bezier(0.33,0.66,0.66,1);' + cssVendor + 'transition-duration:0;' + cssVendor + 'transform: translate(0,0)' + translateZ;
+ if (that.options.useTransition) bar.style.cssText += ';' + cssVendor + 'transition-timing-function:cubic-bezier(0.33,0.66,0.66,1)';
+
+ that[dir + 'ScrollbarWrapper'].appendChild(bar);
+ that[dir + 'ScrollbarIndicator'] = bar;
+ }
+
+ if (dir == 'h') {
+ that.hScrollbarSize = that.hScrollbarWrapper.clientWidth;
+ that.hScrollbarIndicatorSize = m.max(m.round(that.hScrollbarSize * that.hScrollbarSize / that.scrollerW), 8);
+ that.hScrollbarIndicator.style.width = that.hScrollbarIndicatorSize + 'px';
+ that.hScrollbarMaxScroll = that.hScrollbarSize - that.hScrollbarIndicatorSize;
+ that.hScrollbarProp = that.hScrollbarMaxScroll / that.maxScrollX;
+ } else {
+ that.vScrollbarSize = that.vScrollbarWrapper.clientHeight;
+ that.vScrollbarIndicatorSize = m.max(m.round(that.vScrollbarSize * that.vScrollbarSize / that.scrollerH), 8);
+ that.vScrollbarIndicator.style.height = that.vScrollbarIndicatorSize + 'px';
+ that.vScrollbarMaxScroll = that.vScrollbarSize - that.vScrollbarIndicatorSize;
+ that.vScrollbarProp = that.vScrollbarMaxScroll / that.maxScrollY;
+ }
+
+ // Reset position
+ that._scrollbarPos(dir, true);
+ },
+
+ _resize: function () {
+ var that = this;
+ setTimeout(function () { that.refresh(); }, isAndroid ? 200 : 0);
+ },
+
+ _pos: function (x, y) {
+ if (this.zoomed) return;
+
+ x = this.hScroll ? x : 0;
+ y = this.vScroll ? y : 0;
+
+ if (this.options.useTransform) {
+ this.scroller.style[transform] = 'translate(' + x + 'px,' + y + 'px) scale(' + this.scale + ')' + translateZ;
+ } else {
+ x = m.round(x);
+ y = m.round(y);
+ this.scroller.style.left = x + 'px';
+ this.scroller.style.top = y + 'px';
+ }
+
+ this.x = x;
+ this.y = y;
+
+ this._scrollbarPos('h');
+ this._scrollbarPos('v');
+ },
+
+ _scrollbarPos: function (dir, hidden) {
+ var that = this,
+ pos = dir == 'h' ? that.x : that.y,
+ size;
+
+ if (!that[dir + 'Scrollbar']) return;
+
+ pos = that[dir + 'ScrollbarProp'] * pos;
+
+ if (pos < 0) {
+ if (!that.options.fixedScrollbar) {
+ size = that[dir + 'ScrollbarIndicatorSize'] + m.round(pos * 3);
+ if (size < 8) size = 8;
+ that[dir + 'ScrollbarIndicator'].style[dir == 'h' ? 'width' : 'height'] = size + 'px';
+ }
+ pos = 0;
+ } else if (pos > that[dir + 'ScrollbarMaxScroll']) {
+ if (!that.options.fixedScrollbar) {
+ size = that[dir + 'ScrollbarIndicatorSize'] - m.round((pos - that[dir + 'ScrollbarMaxScroll']) * 3);
+ if (size < 8) size = 8;
+ that[dir + 'ScrollbarIndicator'].style[dir == 'h' ? 'width' : 'height'] = size + 'px';
+ pos = that[dir + 'ScrollbarMaxScroll'] + (that[dir + 'ScrollbarIndicatorSize'] - size);
+ } else {
+ pos = that[dir + 'ScrollbarMaxScroll'];
+ }
+ }
+
+ that[dir + 'ScrollbarWrapper'].style[transitionDelay] = '0';
+ that[dir + 'ScrollbarWrapper'].style.opacity = hidden && that.options.hideScrollbar ? '0' : '1';
+ that[dir + 'ScrollbarIndicator'].style[transform] = 'translate(' + (dir == 'h' ? pos + 'px,0)' : '0,' + pos + 'px)') + translateZ;
+ },
+
+ _start: function (e) {
+ var that = this,
+ point = hasTouch ? e.touches[0] : e,
+ matrix, x, y,
+ c1, c2;
+
+ if (!that.enabled) return;
+
+ if (that.options.onBeforeScrollStart) that.options.onBeforeScrollStart.call(that, e);
+
+ if (that.options.useTransition || that.options.zoom) that._transitionTime(0);
+
+ that.moved = false;
+ that.animating = false;
+ that.zoomed = false;
+ that.distX = 0;
+ that.distY = 0;
+ that.absDistX = 0;
+ that.absDistY = 0;
+ that.dirX = 0;
+ that.dirY = 0;
+
+ // Gesture start
+ if (that.options.zoom && hasTouch && e.touches.length > 1) {
+ c1 = m.abs(e.touches[0].pageX-e.touches[1].pageX);
+ c2 = m.abs(e.touches[0].pageY-e.touches[1].pageY);
+ that.touchesDistStart = m.sqrt(c1 * c1 + c2 * c2);
+
+ that.originX = m.abs(e.touches[0].pageX + e.touches[1].pageX - that.wrapperOffsetLeft * 2) / 2 - that.x;
+ that.originY = m.abs(e.touches[0].pageY + e.touches[1].pageY - that.wrapperOffsetTop * 2) / 2 - that.y;
+
+ if (that.options.onZoomStart) that.options.onZoomStart.call(that, e);
+ }
+
+ if (that.options.momentum) {
+ if (that.options.useTransform) {
+ // Very lame general purpose alternative to CSSMatrix
+ matrix = getComputedStyle(that.scroller, null)[transform].replace(/[^0-9\-.,]/g, '').split(',');
+ x = +(matrix[12] || matrix[4]);
+ y = +(matrix[13] || matrix[5]);
+ } else {
+ x = +getComputedStyle(that.scroller, null).left.replace(/[^0-9-]/g, '');
+ y = +getComputedStyle(that.scroller, null).top.replace(/[^0-9-]/g, '');
+ }
+
+ if (x != that.x || y != that.y) {
+ if (that.options.useTransition) that._unbind(TRNEND_EV);
+ else cancelFrame(that.aniTime);
+ that.steps = [];
+ that._pos(x, y);
+ if (that.options.onScrollEnd) that.options.onScrollEnd.call(that);
+ }
+ }
+
+ that.absStartX = that.x; // Needed by snap threshold
+ that.absStartY = that.y;
+
+ that.startX = that.x;
+ that.startY = that.y;
+ that.pointX = point.pageX;
+ that.pointY = point.pageY;
+
+ that.startTime = e.timeStamp || Date.now();
+
+ if (that.options.onScrollStart) that.options.onScrollStart.call(that, e);
+
+ that._bind(MOVE_EV, window);
+ that._bind(END_EV, window);
+ that._bind(CANCEL_EV, window);
+ },
+
+ _move: function (e) {
+ var that = this,
+ point = hasTouch ? e.touches[0] : e,
+ deltaX = point.pageX - that.pointX,
+ deltaY = point.pageY - that.pointY,
+ newX = that.x + deltaX,
+ newY = that.y + deltaY,
+ c1, c2, scale,
+ timestamp = e.timeStamp || Date.now();
+
+ if (that.options.onBeforeScrollMove) that.options.onBeforeScrollMove.call(that, e);
+
+ // Zoom
+ if (that.options.zoom && hasTouch && e.touches.length > 1) {
+ c1 = m.abs(e.touches[0].pageX - e.touches[1].pageX);
+ c2 = m.abs(e.touches[0].pageY - e.touches[1].pageY);
+ that.touchesDist = m.sqrt(c1*c1+c2*c2);
+
+ that.zoomed = true;
+
+ scale = 1 / that.touchesDistStart * that.touchesDist * this.scale;
+
+ if (scale < that.options.zoomMin) scale = 0.5 * that.options.zoomMin * Math.pow(2.0, scale / that.options.zoomMin);
+ else if (scale > that.options.zoomMax) scale = 2.0 * that.options.zoomMax * Math.pow(0.5, that.options.zoomMax / scale);
+
+ that.lastScale = scale / this.scale;
+
+ newX = this.originX - this.originX * that.lastScale + this.x;
+ newY = this.originY - this.originY * that.lastScale + this.y;
+
+ this.scroller.style[transform] = 'translate(' + newX + 'px,' + newY + 'px) scale(' + scale + ')' + translateZ;
+
+ if (that.options.onZoom) that.options.onZoom.call(that, e);
+ return;
+ }
+
+ that.pointX = point.pageX;
+ that.pointY = point.pageY;
+
+ // Slow down if outside of the boundaries
+ if (newX > 0 || newX < that.maxScrollX) {
+ newX = that.options.bounce ? that.x + (deltaX / 2) : newX >= 0 || that.maxScrollX >= 0 ? 0 : that.maxScrollX;
+ }
+ if (newY > that.minScrollY || newY < that.maxScrollY) {
+ newY = that.options.bounce ? that.y + (deltaY / 2) : newY >= that.minScrollY || that.maxScrollY >= 0 ? that.minScrollY : that.maxScrollY;
+ }
+
+ that.distX += deltaX;
+ that.distY += deltaY;
+ that.absDistX = m.abs(that.distX);
+ that.absDistY = m.abs(that.distY);
+
+ if (that.absDistX < 6 && that.absDistY < 6) {
+ return;
+ }
+
+ // Lock direction
+ if (that.options.lockDirection) {
+ if (that.absDistX > that.absDistY + 5) {
+ newY = that.y;
+ deltaY = 0;
+ } else if (that.absDistY > that.absDistX + 5) {
+ newX = that.x;
+ deltaX = 0;
+ }
+ }
+
+ that.moved = true;
+ that._pos(newX, newY);
+ that.dirX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0;
+ that.dirY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0;
+
+ if (timestamp - that.startTime > 300) {
+ that.startTime = timestamp;
+ that.startX = that.x;
+ that.startY = that.y;
+ }
+
+ if (that.options.onScrollMove) that.options.onScrollMove.call(that, e);
+ },
+
+ _end: function (e) {
+ if (hasTouch && e.touches.length !== 0) return;
+
+ var that = this,
+ point = hasTouch ? e.changedTouches[0] : e,
+ target, ev,
+ momentumX = { dist:0, time:0 },
+ momentumY = { dist:0, time:0 },
+ duration = (e.timeStamp || Date.now()) - that.startTime,
+ newPosX = that.x,
+ newPosY = that.y,
+ distX, distY,
+ newDuration,
+ snap,
+ scale;
+
+ that._unbind(MOVE_EV, window);
+ that._unbind(END_EV, window);
+ that._unbind(CANCEL_EV, window);
+
+ if (that.options.onBeforeScrollEnd) that.options.onBeforeScrollEnd.call(that, e);
+
+ if (that.zoomed) {
+ scale = that.scale * that.lastScale;
+ scale = Math.max(that.options.zoomMin, scale);
+ scale = Math.min(that.options.zoomMax, scale);
+ that.lastScale = scale / that.scale;
+ that.scale = scale;
+
+ that.x = that.originX - that.originX * that.lastScale + that.x;
+ that.y = that.originY - that.originY * that.lastScale + that.y;
+
+ that.scroller.style[transitionDuration] = '200ms';
+ that.scroller.style[transform] = 'translate(' + that.x + 'px,' + that.y + 'px) scale(' + that.scale + ')' + translateZ;
+
+ that.zoomed = false;
+ that.refresh();
+
+ if (that.options.onZoomEnd) that.options.onZoomEnd.call(that, e);
+ return;
+ }
+
+ if (!that.moved) {
+ if (hasTouch) {
+ if (that.doubleTapTimer && that.options.zoom) {
+ // Double tapped
+ clearTimeout(that.doubleTapTimer);
+ that.doubleTapTimer = null;
+ if (that.options.onZoomStart) that.options.onZoomStart.call(that, e);
+ that.zoom(that.pointX, that.pointY, that.scale == 1 ? that.options.doubleTapZoom : 1);
+ if (that.options.onZoomEnd) {
+ setTimeout(function() {
+ that.options.onZoomEnd.call(that, e);
+ }, 200); // 200 is default zoom duration
+ }
+ } else if (this.options.handleClick) {
+ that.doubleTapTimer = setTimeout(function () {
+ that.doubleTapTimer = null;
+
+ // Find the last touched element
+ target = point.target;
+ while (target.nodeType != 1) target = target.parentNode;
+
+ if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA') {
+ ev = doc.createEvent('MouseEvents');
+ ev.initMouseEvent('click', true, true, e.view, 1,
+ point.screenX, point.screenY, point.clientX, point.clientY,
+ e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
+ 0, null);
+ ev._fake = true;
+ target.dispatchEvent(ev);
+ }
+ }, that.options.zoom ? 250 : 0);
+ }
+ }
+
+ that._resetPos(400);
+
+ if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+ return;
+ }
+
+ if (duration < 300 && that.options.momentum) {
+ momentumX = newPosX ? that._momentum(newPosX - that.startX, duration, -that.x, that.scrollerW - that.wrapperW + that.x, that.options.bounce ? that.wrapperW : 0) : momentumX;
+ momentumY = newPosY ? that._momentum(newPosY - that.startY, duration, -that.y, (that.maxScrollY < 0 ? that.scrollerH - that.wrapperH + that.y - that.minScrollY : 0), that.options.bounce ? that.wrapperH : 0) : momentumY;
+
+ newPosX = that.x + momentumX.dist;
+ newPosY = that.y + momentumY.dist;
+
+ if ((that.x > 0 && newPosX > 0) || (that.x < that.maxScrollX && newPosX < that.maxScrollX)) momentumX = { dist:0, time:0 };
+ if ((that.y > that.minScrollY && newPosY > that.minScrollY) || (that.y < that.maxScrollY && newPosY < that.maxScrollY)) momentumY = { dist:0, time:0 };
+ }
+
+ if (momentumX.dist || momentumY.dist) {
+ newDuration = m.max(m.max(momentumX.time, momentumY.time), 10);
+
+ // Do we need to snap?
+ if (that.options.snap) {
+ distX = newPosX - that.absStartX;
+ distY = newPosY - that.absStartY;
+ if (m.abs(distX) < that.options.snapThreshold && m.abs(distY) < that.options.snapThreshold) { that.scrollTo(that.absStartX, that.absStartY, 200); }
+ else {
+ snap = that._snap(newPosX, newPosY);
+ newPosX = snap.x;
+ newPosY = snap.y;
+ newDuration = m.max(snap.time, newDuration);
+ }
+ }
+
+ that.scrollTo(m.round(newPosX), m.round(newPosY), newDuration);
+
+ if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+ return;
+ }
+
+ // Do we need to snap?
+ if (that.options.snap) {
+ distX = newPosX - that.absStartX;
+ distY = newPosY - that.absStartY;
+ if (m.abs(distX) < that.options.snapThreshold && m.abs(distY) < that.options.snapThreshold) that.scrollTo(that.absStartX, that.absStartY, 200);
+ else {
+ snap = that._snap(that.x, that.y);
+ if (snap.x != that.x || snap.y != that.y) that.scrollTo(snap.x, snap.y, snap.time);
+ }
+
+ if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+ return;
+ }
+
+ that._resetPos(200);
+ if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+ },
+
+ _resetPos: function (time) {
+ var that = this,
+ resetX = that.x >= 0 ? 0 : that.x < that.maxScrollX ? that.maxScrollX : that.x,
+ resetY = that.y >= that.minScrollY || that.maxScrollY > 0 ? that.minScrollY : that.y < that.maxScrollY ? that.maxScrollY : that.y;
+
+ if (resetX == that.x && resetY == that.y) {
+ if (that.moved) {
+ that.moved = false;
+ if (that.options.onScrollEnd) that.options.onScrollEnd.call(that); // Execute custom code on scroll end
+ }
+
+ if (that.hScrollbar && that.options.hideScrollbar) {
+ if (vendor == 'webkit') that.hScrollbarWrapper.style[transitionDelay] = '300ms';
+ that.hScrollbarWrapper.style.opacity = '0';
+ }
+ if (that.vScrollbar && that.options.hideScrollbar) {
+ if (vendor == 'webkit') that.vScrollbarWrapper.style[transitionDelay] = '300ms';
+ that.vScrollbarWrapper.style.opacity = '0';
+ }
+
+ return;
+ }
+
+ that.scrollTo(resetX, resetY, time || 0);
+ },
+
+ _wheel: function (e) {
+ var that = this,
+ wheelDeltaX, wheelDeltaY,
+ deltaX, deltaY,
+ deltaScale;
+
+ if ('wheelDeltaX' in e) {
+ wheelDeltaX = e.wheelDeltaX / 12;
+ wheelDeltaY = e.wheelDeltaY / 12;
+ } else if('wheelDelta' in e) {
+ wheelDeltaX = wheelDeltaY = e.wheelDelta / 12;
+ } else if ('detail' in e) {
+ wheelDeltaX = wheelDeltaY = -e.detail * 3;
+ } else {
+ return;
+ }
+
+ if (that.options.wheelAction == 'zoom') {
+ deltaScale = that.scale * Math.pow(2, 1/3 * (wheelDeltaY ? wheelDeltaY / Math.abs(wheelDeltaY) : 0));
+ if (deltaScale < that.options.zoomMin) deltaScale = that.options.zoomMin;
+ if (deltaScale > that.options.zoomMax) deltaScale = that.options.zoomMax;
+
+ if (deltaScale != that.scale) {
+ if (!that.wheelZoomCount && that.options.onZoomStart) that.options.onZoomStart.call(that, e);
+ that.wheelZoomCount++;
+
+ that.zoom(e.pageX, e.pageY, deltaScale, 400);
+
+ setTimeout(function() {
+ that.wheelZoomCount--;
+ if (!that.wheelZoomCount && that.options.onZoomEnd) that.options.onZoomEnd.call(that, e);
+ }, 400);
+ }
+
+ return;
+ }
+
+ deltaX = that.x + wheelDeltaX;
+ deltaY = that.y + wheelDeltaY;
+
+ if (deltaX > 0) deltaX = 0;
+ else if (deltaX < that.maxScrollX) deltaX = that.maxScrollX;
+
+ if (deltaY > that.minScrollY) deltaY = that.minScrollY;
+ else if (deltaY < that.maxScrollY) deltaY = that.maxScrollY;
+
+ if (that.maxScrollY < 0) {
+ that.scrollTo(deltaX, deltaY, 0);
+ }
+ },
+
+ _transitionEnd: function (e) {
+ var that = this;
+
+ if (e.target != that.scroller) return;
+
+ that._unbind(TRNEND_EV);
+
+ that._startAni();
+ },
+
+
+ /**
+ *
+ * Utilities
+ *
+ */
+ _startAni: function () {
+ var that = this,
+ startX = that.x, startY = that.y,
+ startTime = Date.now(),
+ step, easeOut,
+ animate;
+
+ if (that.animating) return;
+
+ if (!that.steps.length) {
+ that._resetPos(400);
+ return;
+ }
+
+ step = that.steps.shift();
+
+ if (step.x == startX && step.y == startY) step.time = 0;
+
+ that.animating = true;
+ that.moved = true;
+
+ if (that.options.useTransition) {
+ that._transitionTime(step.time);
+ that._pos(step.x, step.y);
+ that.animating = false;
+ if (step.time) that._bind(TRNEND_EV);
+ else that._resetPos(0);
+ return;
+ }
+
+ animate = function () {
+ var now = Date.now(),
+ newX, newY;
+
+ if (now >= startTime + step.time) {
+ that._pos(step.x, step.y);
+ that.animating = false;
+ if (that.options.onAnimationEnd) that.options.onAnimationEnd.call(that); // Execute custom code on animation end
+ that._startAni();
+ return;
+ }
+
+ now = (now - startTime) / step.time - 1;
+ easeOut = m.sqrt(1 - now * now);
+ newX = (step.x - startX) * easeOut + startX;
+ newY = (step.y - startY) * easeOut + startY;
+ that._pos(newX, newY);
+ if (that.animating) that.aniTime = nextFrame(animate);
+ };
+
+ animate();
+ },
+
+ _transitionTime: function (time) {
+ time += 'ms';
+ this.scroller.style[transitionDuration] = time;
+ if (this.hScrollbar) this.hScrollbarIndicator.style[transitionDuration] = time;
+ if (this.vScrollbar) this.vScrollbarIndicator.style[transitionDuration] = time;
+ },
+
+ _momentum: function (dist, time, maxDistUpper, maxDistLower, size) {
+ var deceleration = 0.0006,
+ speed = m.abs(dist) / time,
+ newDist = (speed * speed) / (2 * deceleration),
+ newTime = 0, outsideDist = 0;
+
+ // Proportinally reduce speed if we are outside of the boundaries
+ if (dist > 0 && newDist > maxDistUpper) {
+ outsideDist = size / (6 / (newDist / speed * deceleration));
+ maxDistUpper = maxDistUpper + outsideDist;
+ speed = speed * maxDistUpper / newDist;
+ newDist = maxDistUpper;
+ } else if (dist < 0 && newDist > maxDistLower) {
+ outsideDist = size / (6 / (newDist / speed * deceleration));
+ maxDistLower = maxDistLower + outsideDist;
+ speed = speed * maxDistLower / newDist;
+ newDist = maxDistLower;
+ }
+
+ newDist = newDist * (dist < 0 ? -1 : 1);
+ newTime = speed / deceleration;
+
+ return { dist: newDist, time: m.round(newTime) };
+ },
+
+ _offset: function (el) {
+ var left = -el.offsetLeft,
+ top = -el.offsetTop;
+
+ while (el = el.offsetParent) {
+ left -= el.offsetLeft;
+ top -= el.offsetTop;
+ }
+
+ if (el != this.wrapper) {
+ left *= this.scale;
+ top *= this.scale;
+ }
+
+ return { left: left, top: top };
+ },
+
+ _snap: function (x, y) {
+ var that = this,
+ i, l,
+ page, time,
+ sizeX, sizeY;
+
+ // Check page X
+ page = that.pagesX.length - 1;
+ for (i=0, l=that.pagesX.length; i= that.pagesX[i]) {
+ page = i;
+ break;
+ }
+ }
+ if (page == that.currPageX && page > 0 && that.dirX < 0) page--;
+ x = that.pagesX[page];
+ sizeX = m.abs(x - that.pagesX[that.currPageX]);
+ sizeX = sizeX ? m.abs(that.x - x) / sizeX * 500 : 0;
+ that.currPageX = page;
+
+ // Check page Y
+ page = that.pagesY.length-1;
+ for (i=0; i= that.pagesY[i]) {
+ page = i;
+ break;
+ }
+ }
+ if (page == that.currPageY && page > 0 && that.dirY < 0) page--;
+ y = that.pagesY[page];
+ sizeY = m.abs(y - that.pagesY[that.currPageY]);
+ sizeY = sizeY ? m.abs(that.y - y) / sizeY * 500 : 0;
+ that.currPageY = page;
+
+ // Snap with constant speed (proportional duration)
+ time = m.round(m.max(sizeX, sizeY)) || 200;
+
+ return { x: x, y: y, time: time };
+ },
+
+ _bind: function (type, el, bubble) {
+ (el || this.scroller).addEventListener(type, this, !!bubble);
+ },
+
+ _unbind: function (type, el, bubble) {
+ (el || this.scroller).removeEventListener(type, this, !!bubble);
+ },
+
+
+ /**
+ *
+ * Public methods
+ *
+ */
+ destroy: function () {
+ var that = this;
+
+ that.scroller.style[transform] = '';
+
+ // Remove the scrollbars
+ that.hScrollbar = false;
+ that.vScrollbar = false;
+ that._scrollbar('h');
+ that._scrollbar('v');
+
+ // Remove the event listeners
+ that._unbind(RESIZE_EV, window);
+ that._unbind(START_EV);
+ that._unbind(MOVE_EV, window);
+ that._unbind(END_EV, window);
+ that._unbind(CANCEL_EV, window);
+
+ if (!that.options.hasTouch) {
+ that._unbind('DOMMouseScroll');
+ that._unbind('mousewheel');
+ }
+
+ if (that.options.useTransition) that._unbind(TRNEND_EV);
+
+ if (that.options.checkDOMChanges) clearInterval(that.checkDOMTime);
+
+ if (that.options.onDestroy) that.options.onDestroy.call(that);
+ },
+
+ refresh: function () {
+ var that = this,
+ offset,
+ i, l,
+ els,
+ pos = 0,
+ page = 0;
+
+ if (that.scale < that.options.zoomMin) that.scale = that.options.zoomMin;
+ that.wrapperW = that.wrapper.clientWidth || 1;
+ that.wrapperH = that.wrapper.clientHeight || 1;
+
+ that.minScrollY = -that.options.topOffset || 0;
+ that.scrollerW = m.round(that.scroller.offsetWidth * that.scale);
+ that.scrollerH = m.round((that.scroller.offsetHeight + that.minScrollY) * that.scale);
+ that.maxScrollX = that.wrapperW - that.scrollerW;
+ that.maxScrollY = that.wrapperH - that.scrollerH + that.minScrollY;
+ that.dirX = 0;
+ that.dirY = 0;
+
+ if (that.options.onRefresh) that.options.onRefresh.call(that);
+
+ that.hScroll = that.options.hScroll && that.maxScrollX < 0;
+ that.vScroll = that.options.vScroll && (!that.options.bounceLock && !that.hScroll || that.scrollerH > that.wrapperH);
+
+ that.hScrollbar = that.hScroll && that.options.hScrollbar;
+ that.vScrollbar = that.vScroll && that.options.vScrollbar && that.scrollerH > that.wrapperH;
+
+ offset = that._offset(that.wrapper);
+ that.wrapperOffsetLeft = -offset.left;
+ that.wrapperOffsetTop = -offset.top;
+
+ // Prepare snap
+ if (typeof that.options.snap == 'string') {
+ that.pagesX = [];
+ that.pagesY = [];
+ els = that.scroller.querySelectorAll(that.options.snap);
+ for (i=0, l=els.length; i= that.maxScrollX) {
+ that.pagesX[page] = pos;
+ pos = pos - that.wrapperW;
+ page++;
+ }
+ if (that.maxScrollX%that.wrapperW) that.pagesX[that.pagesX.length] = that.maxScrollX - that.pagesX[that.pagesX.length-1] + that.pagesX[that.pagesX.length-1];
+
+ pos = 0;
+ page = 0;
+ that.pagesY = [];
+ while (pos >= that.maxScrollY) {
+ that.pagesY[page] = pos;
+ pos = pos - that.wrapperH;
+ page++;
+ }
+ if (that.maxScrollY%that.wrapperH) that.pagesY[that.pagesY.length] = that.maxScrollY - that.pagesY[that.pagesY.length-1] + that.pagesY[that.pagesY.length-1];
+ }
+
+ // Prepare the scrollbars
+ that._scrollbar('h');
+ that._scrollbar('v');
+
+ if (!that.zoomed) {
+ that.scroller.style[transitionDuration] = '0';
+ that._resetPos(400);
+ }
+ },
+
+ scrollTo: function (x, y, time, relative) {
+ var that = this,
+ step = x,
+ i, l;
+
+ that.stop();
+
+ if (!step.length) step = [{ x: x, y: y, time: time, relative: relative }];
+
+ for (i=0, l=step.length; i 0 ? 0 : pos.left < that.maxScrollX ? that.maxScrollX : pos.left;
+ pos.top = pos.top > that.minScrollY ? that.minScrollY : pos.top < that.maxScrollY ? that.maxScrollY : pos.top;
+ time = time === undefined ? m.max(m.abs(pos.left)*2, m.abs(pos.top)*2) : time;
+
+ that.scrollTo(pos.left, pos.top, time);
+ },
+
+ scrollToPage: function (pageX, pageY, time) {
+ var that = this, x, y;
+
+ time = time === undefined ? 400 : time;
+
+ if (that.options.onScrollStart) that.options.onScrollStart.call(that);
+
+ if (that.options.snap) {
+ pageX = pageX == 'next' ? that.currPageX+1 : pageX == 'prev' ? that.currPageX-1 : pageX;
+ pageY = pageY == 'next' ? that.currPageY+1 : pageY == 'prev' ? that.currPageY-1 : pageY;
+
+ pageX = pageX < 0 ? 0 : pageX > that.pagesX.length-1 ? that.pagesX.length-1 : pageX;
+ pageY = pageY < 0 ? 0 : pageY > that.pagesY.length-1 ? that.pagesY.length-1 : pageY;
+
+ that.currPageX = pageX;
+ that.currPageY = pageY;
+ x = that.pagesX[pageX];
+ y = that.pagesY[pageY];
+ } else {
+ x = -that.wrapperW * pageX;
+ y = -that.wrapperH * pageY;
+ if (x < that.maxScrollX) x = that.maxScrollX;
+ if (y < that.maxScrollY) y = that.maxScrollY;
+ }
+
+ that.scrollTo(x, y, time);
+ },
+
+ disable: function () {
+ this.stop();
+ this._resetPos(0);
+ this.enabled = false;
+
+ // If disabled after touchstart we make sure that there are no left over events
+ this._unbind(MOVE_EV, window);
+ this._unbind(END_EV, window);
+ this._unbind(CANCEL_EV, window);
+ },
+
+ enable: function () {
+ this.enabled = true;
+ },
+
+ stop: function () {
+ if (this.options.useTransition) this._unbind(TRNEND_EV);
+ else cancelFrame(this.aniTime);
+ this.steps = [];
+ this.moved = false;
+ this.animating = false;
+ },
+
+ zoom: function (x, y, scale, time) {
+ var that = this,
+ relScale = scale / that.scale;
+
+ if (!that.options.useTransform) return;
+
+ that.zoomed = true;
+ time = time === undefined ? 200 : time;
+ x = x - that.wrapperOffsetLeft - that.x;
+ y = y - that.wrapperOffsetTop - that.y;
+ that.x = x - x * relScale + that.x;
+ that.y = y - y * relScale + that.y;
+
+ that.scale = scale;
+ that.refresh();
+
+ that.x = that.x > 0 ? 0 : that.x < that.maxScrollX ? that.maxScrollX : that.x;
+ that.y = that.y > that.minScrollY ? that.minScrollY : that.y < that.maxScrollY ? that.maxScrollY : that.y;
+
+ that.scroller.style[transitionDuration] = time + 'ms';
+ that.scroller.style[transform] = 'translate(' + that.x + 'px,' + that.y + 'px) scale(' + scale + ')' + translateZ;
+ that.zoomed = false;
+ },
+
+ isReady: function () {
+ return !this.moved && !this.zoomed && !this.animating;
+ }
+};
+
+function prefixStyle (style) {
+ if ( vendor === '' ) return style;
+
+ style = style.charAt(0).toUpperCase() + style.substr(1);
+ return vendor + style;
+}
+
+dummyStyle = null; // for the sake of it
+
+if (typeof exports !== 'undefined') exports.iScroll = iScroll;
+else window.iScroll = iScroll;
+
+})(window, document);
diff --git a/WebContent/html/javascript/iconselect.js-1.0/nbproject/private/config.properties b/WebContent/html/javascript/iconselect.js-1.0/nbproject/private/config.properties
new file mode 100644
index 0000000..e69de29
diff --git a/WebContent/html/javascript/iconselect.js-1.0/nbproject/private/private.properties b/WebContent/html/javascript/iconselect.js-1.0/nbproject/private/private.properties
new file mode 100644
index 0000000..3334426
--- /dev/null
+++ b/WebContent/html/javascript/iconselect.js-1.0/nbproject/private/private.properties
@@ -0,0 +1,6 @@
+browser.id=Chrome.INTEGRATED
+copy.src.on.open=false
+debug.url=DEFAULT_URL
+index.file=index.html
+run.as=LOCAL
+url=http://localhost/IconSelectJS/
diff --git a/WebContent/html/javascript/iconselect.js-1.0/nbproject/private/private.xml b/WebContent/html/javascript/iconselect.js-1.0/nbproject/private/private.xml
new file mode 100644
index 0000000..6807a2b
--- /dev/null
+++ b/WebContent/html/javascript/iconselect.js-1.0/nbproject/private/private.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/WebContent/html/javascript/iconselect.js-1.0/nbproject/project.properties b/WebContent/html/javascript/iconselect.js-1.0/nbproject/project.properties
new file mode 100644
index 0000000..d37ef95
--- /dev/null
+++ b/WebContent/html/javascript/iconselect.js-1.0/nbproject/project.properties
@@ -0,0 +1,7 @@
+include.path=${php.global.include.path}
+php.version=PHP_54
+source.encoding=UTF-8
+src.dir=.
+tags.asp=false
+tags.short=false
+web.root=.
diff --git a/WebContent/html/javascript/iconselect.js-1.0/nbproject/project.xml b/WebContent/html/javascript/iconselect.js-1.0/nbproject/project.xml
new file mode 100644
index 0000000..a77857e
--- /dev/null
+++ b/WebContent/html/javascript/iconselect.js-1.0/nbproject/project.xml
@@ -0,0 +1,9 @@
+
+
+ org.netbeans.modules.php.project
+
+
+ IconSelectJS
+
+
+
diff --git a/WebContent/html/javascript/iconselect.js-1.0/profileIcon.js b/WebContent/html/javascript/iconselect.js-1.0/profileIcon.js
new file mode 100644
index 0000000..1ad8373
--- /dev/null
+++ b/WebContent/html/javascript/iconselect.js-1.0/profileIcon.js
@@ -0,0 +1,34 @@
+var iconSelect;
+
+ window.onload = function(){
+
+ iconSelect = new IconSelect("my-icon-select",
+ {'selectedIconWidth':23,
+ 'selectedIconHeight':23,
+ 'selectedBoxPadding':1,
+ 'iconsWidth':48,
+ 'iconsHeight':48,
+ 'boxIconSpace':1,
+ 'vectoralIconNumber':2,
+ 'horizontalIconNumber':6});
+
+ var icons = [];
+ icons.push({'iconFilePath':'../imgs/my-icons-collection-32px/png/aquarium.png', 'iconValue':'1'});
+ icons.push({'iconFilePath':'../imgs/my-icons-collection-32px/png/bird.png', 'iconValue':'2'});
+ icons.push({'iconFilePath':'../imgs/my-icons-collection-32px/png/bird-1.png', 'iconValue':'3'});
+ icons.push({'iconFilePath':'../imgs/my-icons-collection-32px/png/diamond.png', 'iconValue':'4'});
+ icons.push({'iconFilePath':'../imgs/my-icons-collection-32px/png/doughnut.png', 'iconValue':'5'});
+ icons.push({'iconFilePath':'../imgs/my-icons-collection-32px/png/flask.png', 'iconValue':'6'});
+ icons.push({'iconFilePath':'../imgs/my-icons-collection-32px/png/fruit.png', 'iconValue':'7'});
+ icons.push({'iconFilePath':'../imgs/my-icons-collection-32px/png/gingerbread-man.png', 'iconValue':'8'});
+ icons.push({'iconFilePath':'../imgs/my-icons-collection-32px/png/like.png', 'iconValue':'9'});
+ icons.push({'iconFilePath':'../imgs/my-icons-collection-32px/png/moon.png', 'iconValue':'10'});
+ icons.push({'iconFilePath':'../imgs/my-icons-collection-32px/png/octopus.png', 'iconValue':'11'});
+ icons.push({'iconFilePath':'../imgs/my-icons-collection-32px/png/paint-brush.png', 'iconValue':'12'});
+ icons.push({'iconFilePath':'../imgs/my-icons-collection-32px/png/snorkel.png', 'iconValue':'13'});
+ icons.push({'iconFilePath':'../imgs/my-icons-collection-32px/png/squirrel.png', 'iconValue':'14'});
+ icons.push({'iconFilePath':'../imgs/my-icons-collection-32px/png/sweater.png', 'iconValue':'15'});
+
+ iconSelect.refresh(icons);
+
+ };
\ No newline at end of file
diff --git a/WebContent/html/javascript/iconselect.js-1.0/readme.txt b/WebContent/html/javascript/iconselect.js-1.0/readme.txt
new file mode 100644
index 0000000..255f2c7
--- /dev/null
+++ b/WebContent/html/javascript/iconselect.js-1.0/readme.txt
@@ -0,0 +1,18 @@
+ Code: IconSelect JS
+
+ Year: 8 Dec 2013
+ Autor: Buğra ÖZDEN
+ Mail: bugra.ozden@gmail.com
+ Site: bugraozden.com
+
+
+ You are free:
+
+ to Share — to copy, distribute and transmit the work
+ to Remix — to adapt the work
+ to make commercial use of the work
+
+
+
+
+ Have Fun.
\ No newline at end of file
diff --git a/WebContent/html/javascript/listing.jsp b/WebContent/html/javascript/listing.jsp
index 0d05c48..456db40 100644
--- a/WebContent/html/javascript/listing.jsp
+++ b/WebContent/html/javascript/listing.jsp
@@ -9,11 +9,11 @@
<%
-MySQLAccess myaccess = new MySQLAccess();
+/*MySQLAccess myaccess = new MySQLAccess();
myaccess.connectDB();
String name = myaccess.getResult()[0][0];
String description = myaccess.getResult()[0][1];
-String hardware = myaccess.getResult()[0][2];
+String hardware = myaccess.getResult()[0][2];*/
//out.println(name);
//out.println(description);
//out.println(hardware);
@@ -21,21 +21,23 @@ String hardware = myaccess.getResult()[0][2];
-
-
-
-
-
+
+
-
-