diff --git a/.classpath b/.classpath index 09ba841..7ac7040 100644 --- a/.classpath +++ b/.classpath @@ -12,14 +12,34 @@ - + + + + + + + + + + + + + + + + + + + + + - + - + 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.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml index a3bf73b..059c316 100644 --- a/.settings/org.eclipse.wst.common.project.facet.core.xml +++ b/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -1,9 +1,8 @@ - + - diff --git a/CREDITS.md b/CREDITS.md new file mode 100644 index 0000000..95ae8b2 --- /dev/null +++ b/CREDITS.md @@ -0,0 +1,29 @@ +# 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 +* Crying + +## Freepik +* Gingerbread man +* Flask +* Diamond +* Squirrel +* Bird (the teal one!) + +## Pixel Buddha +* Moon +* Doughnut +* Bird (the red one!) +* Paint Brush + +##Roundicons +* Warning diff --git a/README.md b/README.md index 6e1ee98..bf30d82 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,12 @@ -# Synchrony Financial Mobile Device Tracking System +# [Innovation Hub](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. Team member on this project include: -* Brianna Boyce +* Connor Jackson * Adam Claxton +* Brianna Boyce * John Costa * Maegan Dyakiw -* Connor Jackson + diff --git a/Senior Design.war b/Senior Design.war new file mode 100644 index 0000000..75fff92 Binary files /dev/null and b/Senior Design.war differ diff --git a/WebContent/WEB-INF/lib/activation.jar b/WebContent/WEB-INF/lib/activation.jar new file mode 100644 index 0000000..29a59a9 Binary files /dev/null and b/WebContent/WEB-INF/lib/activation.jar differ diff --git a/WebContent/WEB-INF/lib/mail.jar b/WebContent/WEB-INF/lib/mail.jar new file mode 100644 index 0000000..e4159c3 Binary files /dev/null and b/WebContent/WEB-INF/lib/mail.jar differ diff --git a/WebContent/WEB-INF/lib/servlet-api.jar b/WebContent/WEB-INF/lib/servlet-api.jar new file mode 100644 index 0000000..9793d17 Binary files /dev/null and b/WebContent/WEB-INF/lib/servlet-api.jar differ diff --git a/WebContent/WEB-INF/lib/smtp.jar b/WebContent/WEB-INF/lib/smtp.jar new file mode 100644 index 0000000..51d3421 Binary files /dev/null and b/WebContent/WEB-INF/lib/smtp.jar differ diff --git a/WebContent/WEB-INF/web.xml b/WebContent/WEB-INF/web.xml new file mode 100644 index 0000000..c98448e --- /dev/null +++ b/WebContent/WEB-INF/web.xml @@ -0,0 +1,11 @@ + + + Application Name + + index.jsp + + + 404 + /html/webpages/error.jsp + + \ No newline at end of file diff --git a/WebContent/adminLogin.jsp b/WebContent/adminLogin.jsp new file mode 100644 index 0000000..9c3445f --- /dev/null +++ b/WebContent/adminLogin.jsp @@ -0,0 +1,161 @@ +<%@ page import = "database.*" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> +<%@ page import = "java.sql.*" %> +<%@ page import = "java.security.MessageDigest" %> +<%@ page import = "java.security.NoSuchAlgorithmException" %> +<%@ page import = "java.util.Random" %> + + + + + + + + + + + Innovation Hub + + + + + + + + + + + +<% +/* + If admin chose to login, we work on this form. +*/ +if(request.getParameter("login") != null){ + /* + Get form information from last page. + */ + int ssoNum = Integer.parseInt(request.getParameter("username")); + String pass = request.getParameter("pass"); + Cookie adminCookie; + String generatedPass = null; + + /* + Hash what the user put in, so we can see if the passwords match up. + */ + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + md.update(pass.getBytes()); + byte[] bytes = md.digest(); + StringBuilder sb = new StringBuilder(); + for(int i = 0; i + + \ No newline at end of file diff --git a/WebContent/html/css/stylesheet.css b/WebContent/html/css/stylesheet.css index 8a50290..7026714 100644 --- a/WebContent/html/css/stylesheet.css +++ b/WebContent/html/css/stylesheet.css @@ -14,8 +14,6 @@ div.sidebar{ border-right-style: solid; height: 100vh; background-color: #E9EAEB; - width: 300px; - position: fixed; } div.displayDevice{ @@ -25,7 +23,18 @@ div.displayDevice{ width: 100%; height: 100%; overflow: scroll; - left: 300px; +} + +div.profileContainer, +div.notificationContainer{ + display: inline-block; + position: absolute; + padding-left: 30px; + width: 100%; + height: 100%; + overflow: scroll; + left: 200px; + top: 70px; } div.modal{ @@ -48,7 +57,7 @@ div.modal-content{ padding: 10px; border: 1px solid #888; width: 80%; - max-height: 80%; + max-height: 100%; text-align: center; vertical-align: center; align-items: center; @@ -59,8 +68,15 @@ div.modal-body{ overflow: auto; } -input[type=text]{ - width: 60%; +textarea{ + margin: 0 auto; +} + +select{ + margin:0 auto; + width: 65%; + align-self: center; + float: center; } @@ -80,3 +96,62 @@ ul.nav{ padding: 0px; } +/*this is all to make slider-switches*/ +/* The switch - the box around the slider */ +.switch { + position: relative; + display: inline-block; + width: 60px; + height: 34px; +} + +/* Hide default HTML checkbox */ +.switch input {display:none;} + +/* The slider */ +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} + +.slider:before { + position: absolute; + content: ""; + height: 26px; + width: 26px; + left: 4px; + bottom: 4px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; +} + +input:checked + .slider { + background-color: #2196F3; +} + +input:focus + .slider { + box-shadow: 0 0 1px #2196F3; +} + +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} + +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} + +.slider.round:before { + border-radius: 50%; +} \ No newline at end of file diff --git a/WebContent/html/imgs/computerStick.png b/WebContent/html/imgs/computerStick.png deleted file mode 100644 index 38a5a64..0000000 Binary files a/WebContent/html/imgs/computerStick.png and /dev/null differ diff --git a/WebContent/html/imgs/ipad.png b/WebContent/html/imgs/ipad.png deleted file mode 100644 index dd56f42..0000000 Binary files a/WebContent/html/imgs/ipad.png and /dev/null differ diff --git a/WebContent/html/imgs/iphone.png b/WebContent/html/imgs/iphone.png deleted file mode 100644 index d4e9ee4..0000000 Binary files a/WebContent/html/imgs/iphone.png and /dev/null 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-128px/png/warning.png b/WebContent/html/imgs/my-icons-collection-128px/png/warning.png new file mode 100644 index 0000000..68f62c6 Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/warning.png differ diff --git a/WebContent/html/imgs/my-icons-collection-128px/png/wrong.png b/WebContent/html/imgs/my-icons-collection-128px/png/wrong.png new file mode 100644 index 0000000..6107cee Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-128px/png/wrong.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/imgs/my-icons-collection-devices/license/license.pdf b/WebContent/html/imgs/my-icons-collection-devices/license/license.pdf new file mode 100644 index 0000000..bdeedb7 Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-devices/license/license.pdf differ diff --git a/WebContent/html/imgs/my-icons-collection-devices/png/Camera.png b/WebContent/html/imgs/my-icons-collection-devices/png/Camera.png new file mode 100644 index 0000000..6e2f1ee Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-devices/png/Camera.png differ diff --git a/WebContent/html/imgs/my-icons-collection-devices/png/Computer.png b/WebContent/html/imgs/my-icons-collection-devices/png/Computer.png new file mode 100644 index 0000000..ab31afd Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-devices/png/Computer.png differ diff --git a/WebContent/html/imgs/my-icons-collection-devices/png/Router.png b/WebContent/html/imgs/my-icons-collection-devices/png/Router.png new file mode 100644 index 0000000..0c9148a Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-devices/png/Router.png differ diff --git a/WebContent/html/imgs/my-icons-collection-devices/png/Smartphone.png b/WebContent/html/imgs/my-icons-collection-devices/png/Smartphone.png new file mode 100644 index 0000000..2256dc0 Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-devices/png/Smartphone.png differ diff --git a/WebContent/html/imgs/my-icons-collection-devices/png/Tablet.png b/WebContent/html/imgs/my-icons-collection-devices/png/Tablet.png new file mode 100644 index 0000000..c1011a1 Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-devices/png/Tablet.png differ diff --git a/WebContent/html/imgs/my-icons-collection-devices/png/iPod Touch.png b/WebContent/html/imgs/my-icons-collection-devices/png/iPod Touch.png new file mode 100644 index 0000000..c857d29 Binary files /dev/null and b/WebContent/html/imgs/my-icons-collection-devices/png/iPod Touch.png differ diff --git a/WebContent/html/imgs/potato.png b/WebContent/html/imgs/potato.png deleted file mode 100644 index d98bd68..0000000 Binary files a/WebContent/html/imgs/potato.png and /dev/null differ diff --git a/WebContent/html/imgs/synchrony logo.png b/WebContent/html/imgs/synchrony logo.png new file mode 100644 index 0000000..0751a83 Binary files /dev/null and b/WebContent/html/imgs/synchrony logo.png differ diff --git a/WebContent/html/imgs/user_icon.png b/WebContent/html/imgs/user_icon.png deleted file mode 100644 index feff4b3..0000000 Binary files a/WebContent/html/imgs/user_icon.png and /dev/null 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..b2021d1 --- /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..8c78648 --- /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..b6c4cc7 --- /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..ab60e43 --- /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..5ae105e --- /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..7aff837 --- /dev/null +++ b/WebContent/html/javascript/iconselect.js-1.0/lib/control/iconselect.js @@ -0,0 +1,323 @@ + +/** + * + * 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"); + if(_selectedIndex != -1) $('#hiddenIMG').val(icon.iconValue); + } + + _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..bbdd0ab --- /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..702434f --- /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..d98a801 --- /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..284eeec --- /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..8b7302c --- /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..1676022 --- /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..6c1cb01 --- /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..7f69df2 --- /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/lib/fuzzy.js b/WebContent/html/javascript/lib/fuzzy.js new file mode 100644 index 0000000..46fa244 --- /dev/null +++ b/WebContent/html/javascript/lib/fuzzy.js @@ -0,0 +1,143 @@ +/* + * Fuzzy + * https://github.com/myork/fuzzy + * + * Copyright (c) 2012 Matt York + * Licensed under the MIT license. + */ + +(function() { + +var root = this; + +var fuzzy = {}; + +// Use in node or in browser +if (typeof exports !== 'undefined') { + module.exports = fuzzy; +} else { + root.fuzzy = fuzzy; +} + +// Return all elements of `array` that have a fuzzy +// match against `pattern`. +fuzzy.simpleFilter = function(pattern, array) { + return array.filter(function(str) { + return fuzzy.test(pattern, str); + }); +}; + +// Does `pattern` fuzzy match `str`? +fuzzy.test = function(pattern, str) { + return fuzzy.match(pattern, str) !== null; +}; + +// If `pattern` matches `str`, wrap each matching character +// in `opts.pre` and `opts.post`. If no match, return null +fuzzy.match = function(pattern, str, opts) { + opts = opts || {}; + var patternIdx = 0 + , result = [] + , len = str.length + , totalScore = 0 + , currScore = 0 + // prefix + , pre = opts.pre || '' + // suffix + , post = opts.post || '' + // String to compare against. This might be a lowercase version of the + // raw string + , compareString = opts.caseSensitive && str || str.toLowerCase() + , ch; + + pattern = opts.caseSensitive && pattern || pattern.toLowerCase(); + + // For each character in the string, either add it to the result + // or wrap in template if it's the next string in the pattern + for(var idx = 0; idx < len; idx++) { + ch = str[idx]; + if(compareString[idx] === pattern[patternIdx]) { + ch = pre + ch + post; + patternIdx += 1; + + // consecutive characters should increase the score more than linearly + currScore += 1 + currScore; + } else { + currScore = 0; + } + totalScore += currScore; + result[result.length] = ch; + } + + // return rendered string if we have a match for every char + if(patternIdx === pattern.length) { + // if the string is an exact match with pattern, totalScore should be maxed + totalScore = (compareString === pattern) ? Infinity : totalScore; + return {rendered: result.join(''), score: totalScore}; + } + + return null; +}; + +// The normal entry point. Filters `arr` for matches against `pattern`. +// It returns an array with matching values of the type: +// +// [{ +// string: 'lah' // The rendered string +// , index: 2 // The index of the element in `arr` +// , original: 'blah' // The original element in `arr` +// }] +// +// `opts` is an optional argument bag. Details: +// +// opts = { +// // string to put before a matching character +// pre: '' +// +// // string to put after matching character +// , post: '' +// +// // Optional function. Input is an entry in the given arr`, +// // output should be the string to test `pattern` against. +// // In this example, if `arr = [{crying: 'koala'}]` we would return +// // 'koala'. +// , extract: function(arg) { return arg.crying; } +// } +fuzzy.filter = function(pattern, arr, opts) { + if(!arr || arr.length === 0) { + return []; + } + if (typeof pattern !== 'string') { + return arr; + } + opts = opts || {}; + return arr + .reduce(function(prev, element, idx, arr) { + var str = element; + if(opts.extract) { + str = opts.extract(element); + } + var rendered = fuzzy.match(pattern, str, opts); + if(rendered != null) { + prev[prev.length] = { + string: rendered.rendered + , score: rendered.score + , index: idx + , original: element + }; + } + return prev; + }, []) + + // Sort by score. Browsers are inconsistent wrt stable/unstable + // sorting, so force stable by using the index in the case of tie. + // See http://ofb.net/~sethml/is-sort-stable.html + .sort(function(a,b) { + var compare = b.score - a.score; + if(compare) return compare; + return a.index - b.index; + }); +}; + + +}()); \ No newline at end of file diff --git a/WebContent/html/javascript/listing.jsp b/WebContent/html/javascript/listing.jsp index 456db40..ff995e1 100644 --- a/WebContent/html/javascript/listing.jsp +++ b/WebContent/html/javascript/listing.jsp @@ -1,173 +1,187 @@ -<%@ page import = "database.MySQLAccess" %> -<%@ page language="java" contentType="text/html; charset=ISO-8859-1" - pageEncoding="ISO-8859-1"%> - - - - -Insert title here - - -<% -/*MySQLAccess myaccess = new MySQLAccess(); -myaccess.connectDB(); -String name = myaccess.getResult()[0][0]; -String description = myaccess.getResult()[0][1]; -String hardware = myaccess.getResult()[0][2];*/ -//out.println(name); -//out.println(description); -//out.println(hardware); -%> - - - +<%@ page import = "database.*,entities.Device" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> + + + + + Insert title here + + + <% + Device[] mydevices = DeviceQueries.getAllDevices(); +//string representation of array. + String deviceString = Device.arrayToString(mydevices); +//out.println(description); +//out.println(hardware); + %> + + + + \ No newline at end of file diff --git a/WebContent/html/javascript/navbar.js b/WebContent/html/javascript/navbar.js deleted file mode 100644 index e9c421e..0000000 --- a/WebContent/html/javascript/navbar.js +++ /dev/null @@ -1 +0,0 @@ -document.getElementById('navbaruniversal').innerHTML = '' diff --git a/WebContent/html/javascript/request.js b/WebContent/html/javascript/request.js deleted file mode 100644 index 62ebde9..0000000 --- a/WebContent/html/javascript/request.js +++ /dev/null @@ -1,193 +0,0 @@ -//get all the option buttons - -var hardwareOptions = document.getElementsByClassName('hw-data-type'); -var softwareOptions = document.getElementsByClassName('sw-data-type'); - - -function ajaxFunction(){ - var request; - try { - request = new XMLHttpRequest(); - } - catch(e){ - try { - request = new ActiveXObject("Msxml2.XMLHTTP"); - } - catch(e){ - try { - request = new ActiveXObject(Microsoft.XMLHTTP); - } catch(e) { - alert("Something is wrong with your browser"); - return false; - } - - } - } - - - request.onreadystatechange = function(){ - if(request.readyState == 4){ - var display = document.getElementById('ajaxDiv'); - display.innerHTML = request.responseText; - } - } - -} -var dev1 = { - id: 1, - name:"George", - description:"George is probably the coolest iPhone to exist. Ever. Point blank, period.", - hardware:"iphone", - software:"apple", -}; - -var dev2 = { - id: 2, - name:"Greyson", - description:"Greyson is pretty cool.. I guess.", - hardware:"iphone", - software:"apple", -}; - -var dev3 = { - id: 3, - name:"Linkin Park", - description:'"The hardest part of ending is starting again."', - hardware:"ipad", - software:"apple", -}; - -var dev4 = { - id: 4, - name:"Abercrombie", - description:"To all the people that hated me in high school, I have the prettiest clothes you all wear now!!", - hardware:"ipad", - software:"apple", -}; - -var dev5 = { - id: 5, - name:"Hulk", - description:"Go ahead and HULK SMASH! this awesome computer stick into your USB.", - hardware:"computerStick", - software:"intel", -}; - -var dev6 = { - id: 6, - name:"Captain America", - description:'"Make America Great Again. Wait, thats someone else.."', - hardware:"computerStick", - software:"intel", -}; - -var devices = [dev1, dev2, dev3, dev4, dev5, dev6]; - -//add event listeners to the options in the left sidebar -for(var a = 0; a < options.length; a++){ - options[a].addEventListener('click', show); -} - -//when an option is selected, show a new list of devices based on what the user asked for -function show(){ - - currentFilter = readFilter(); - selectedDevices = getDevices(currentFilter); //when connor is done with the database library getDevices should be redirected there - - - - var html = ''; - - //iterate through the hardcoded device DB and select all the ones that match the selected option - for(var i = 0; i < devices.length; i++){ - if((hw_type.localeCompare(devices[i].hardware) == 0 && sw_type.localeCompare(devices[i].software) == 0) && !isUnavailable(i)){ - html += '
' + devices[i].name + '

' + devices[i].description + '



' - } - } - - if(html.localeCompare("")==0) - html += "

There are no devices with the search criteria: " + this.textContent + "

"; - - //add to HTML page - document.getElementById('devContainer').innerHTML = html; - - //now we need to add event listeners to all the request buttons - var requestbuttons = document.getElementsByClassName('requestbutton'); - for(var i = 0; i < requestbuttons.length; i++){ - requestbuttons[i].addEventListener('click',addToCart); - } -} - -function readFilter() { - //Constrcts a filter object for use in the database library that corresponds to the checked optionsin the sidebar - var hw_type; - var sw_type; - -} - -function addToCart(){ - var id = this.getAttribute('id'); - id = parseInt(id.replace(/[^0-9\.]/g,''),10); //this gets just the numerical value from the id! - if(!inCart(id)){ //if not in the cart - var cart = getCartItems(); //this is an array - cart.push(id); //push to bottom of cart - localStorage.setItem('cart', JSON.stringify(cart)); - $('#added').fadeIn(1000); - $('#added').fadeIn(1000); - $('#added').fadeOut(1000); - } - else{ - $('#already').fadeIn(1000); - $('#already').fadeIn(1000); - $('#already').fadeOut(1000); - } -} - -function inCart(id){ - var cart = getCartItems(); - if(cart.length == 0) //if nothing's in the cart - return 0; - else{ //something is in the cart - for(var i = 0; i < cart.length; i++){ - if(cart[i] === id) - return 1; - } - } - return 0; -} - -function getCartItems(){ - //initiate array for them - var cart = new Array; - //get them from local storage - var cart_str = localStorage.getItem('cart'); - //if there is at least one object already we need to convert it from JSON to string - if (cart_str !== null && cart_str !== "") { - cart = JSON.parse(cart_str); - } - return cart; -} - -function getUnavailableItems(){ - var unavailable = new Array; - var unavailable_str = localStorage.getItem('unavailable'); - if(unavailable_str !== "" && unavailable_str !== null){ - unavailable = JSON.parse(unavailable_str); - } - return unavailable; -} - -function isUnavailable(id){ - var unavailable = getUnavailableItems(); - if(unavailable.length == 0) - return 0; - else{ - for(var i = 0; i < unavailable.length; i++){ - if(unavailable[i] == (id+1)) - return 1; - } - } - return 0; -} - -//this code allows a message to appear that indicates that the item was successfully placed in the shopping cart. diff --git a/WebContent/html/javascript/request.jsp b/WebContent/html/javascript/request.jsp new file mode 100644 index 0000000..d8d3640 --- /dev/null +++ b/WebContent/html/javascript/request.jsp @@ -0,0 +1,207 @@ +<%@ page import = "database.*,entities.Device" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> + + + + +Insert title here + + +<% +Device[] mydevices = DeviceQueries.getAvailableDevices(); +//string representation of array. +String deviceString = Device.arrayToString(mydevices); +//out.println(description); +//out.println(hardware); +%> + + + + + \ No newline at end of file diff --git a/WebContent/html/javascript/return.js b/WebContent/html/javascript/return.js deleted file mode 100644 index 6298caa..0000000 --- a/WebContent/html/javascript/return.js +++ /dev/null @@ -1,211 +0,0 @@ - -var dev1 = { - id: 1, - name:"George", - hardware:"iphone", - checkout: new Date("11/11/2016"), -}; - -var dev2 = { - id: 2, - name:"Greyson", - hardware:"iphone", - checkout: new Date("8/10/2016"), -}; - -var dev3 = { - id: 3, - name:"Linkin Park", - hardware:"ipad", - checkout: new Date("8/20/2016"), -}; - -var dev4 = { - id: 4, - name:"Abercrombie", - hardware:"ipad", - checkout: new Date("11/3/2016"), -}; - -var dev5 = { - id: 5, - name:"Hulk", - hardware:"computerStick", - checkout: new Date("4/28/2016"), -}; - -var dev6 = { - id: 6, - name:"Captain America", - hardware:"computerStick", - checkout: new Date("10/22/2016"), -}; - -var devices = [dev1, dev2, dev3, dev4, dev5, dev6]; -//This array corresponds to the hardcoded inventory in request.js. The description has been replaced with a -//checkout date, because I imagine that is more the kind of info to pull from the database for this page. -//IDs, names and hardware are the same. - -var options = document.getElementsByClassName('option'); -for (var i = options.length - 1; i >= 0; i--) { - options[i].addEventListener('click',filterDeviceList); -} - - -populateDeviceList(null); - -function filterDeviceList() -{ - var id = this.getAttribute('id'); - month=30*24*60*60*1000; - var upperbound; - var lowerbound; - var filter = new Array(); - switch(id) - { - case "all": - populateDeviceList(null); - break; - case "1month": - upperbound=new Date().getTime(); - lowerbound=upperbound-month; - filter=[lowerbound, upperbound]; - populateDeviceList(filter); - break; - case "1-3months": - upperbound=new Date().getTime()-month; - lowerbound=upperbound-2*month; - filter=[lowerbound, upperbound]; - populateDeviceList(filter); - break; - case "3-5months": - upperbound=new Date().getTime()-3*month; - lowerbound=upperbound-2*month; - filter=[lowerbound, upperbound]; - populateDeviceList(filter); - break; - case "5+months": - upperbound=new Date().getTime()-5*month; - lowerbound=0; - filter=[lowerbound, upperbound]; - populateDeviceList(filter); - break; - } -} - -function populateDeviceList(filter) -//generates html and writes to 'devContainer' div in returnPage.html -{ - var devicesToList = getCheckedOutDevices(null,filter); - var htmlString=""; - var i; - for (i = 0; i < devicesToList.length; i++) { - var id = devicesToList[i].id; - var name = devicesToList[i].name; - var hardware = devicesToList[i].hardware; - var checkout = devicesToList[i].checkout; - htmlString+="
"; - htmlString+=name; - htmlString+="

Checked out: " - htmlString+=checkout.toISOString().substring(0,10); - htmlString+="

You've had this device for "; - var milliseconds=new Date().getTime()-checkout.getTime(); - var seconds=Math.floor(milliseconds/1000); - var minutes=Math.floor(seconds/60); - var hours=Math.floor(minutes/60); - var days=Math.floor(hours/24); - var weeks=Math.floor(days/7); - var months=Math.floor(weeks/4); - if(months>=2) htmlString+=months+" months"; - else - { - htmlString+= weeks+ " week"; - if(weeks!=1) htmlString+="s"; - } - htmlString+="!"; - htmlString+="



"; - } - if(i==0) htmlString+="Couldn't find any devices to return. Why not go order some?"; - document.getElementById("devContainer").innerHTML = htmlString; - - var returnbuttons = document.getElementsByClassName('returnbutton'); - for (var i = 0; i < returnbuttons.length; i++) { - returnbuttons[i].addEventListener('click',returnDevice); - } -} - -function returnDevice() -{ - var id = this.getAttribute('id'); - id = parseInt(id.replace(/[^0-9\.]/g,''), 10); - if(isUnavailable(id)) - { - var unavailable = getUnavailableIDs(); - unavailable.splice(unavailable.indexOf(id),1); - localStorage.setItem('unavailable',JSON.stringify(unavailable)); - $('#return').fadeIn(1000); - $('#return').fadeIn(1000); - $('#return').fadeOut(1000); - } - else - alert("That's already marked available. Something may have gone wrong."); - populateDeviceList(); -} - -function getCheckedOutDevices(user, filter) -//Eventually this will return information about all devices checked out by *user* -//Right now there is only one user, and the function just returns IDs of all checked out devicess. -//'Filter' is passed as a two-element array representing a range of milliseconds. -//If the checkout date for a device falls within that range, then it will be included in the results. -//The filter may be null. If so, all checked out devices will be returned. -{ - var unavailable = getUnavailableIDs(); - var checkedDevices = new Array(); - for (var i = 0; i < unavailable.length; i++) { - for (var j = 0; j < devices.length; j++) { - if(unavailable[i] == devices[j].id) - { - if(filter!=null) - { - var checkedOutMillis = devices[j].checkout.getTime(); - if(filter[0]checkedOutMillis) - checkedDevices.push(devices[j]); - } - else - checkedDevices.push(devices[j]); - break; - } - } - } - return checkedDevices; -} - -function isUnavailable(id){ - var unavailable = getUnavailableIDs(); - if(unavailable.length == 0) - return 0; - else{ - for(var i = 0; i < unavailable.length; i++){ - if(unavailable[i] == (id)) - return 1; - } - } - return 0; -} -function getUnavailableIDs() -//Identical to the function in request.js: just reads the 'unavailable' array in local storage. -//Will need to be changed (or may be obsolete) when we get a database -{ - var unavailable = new Array; - var unavailable_str = localStorage.getItem('unavailable'); - if(unavailable_str !== "" && unavailable_str !== null){ - unavailable = JSON.parse(unavailable_str); - } - return unavailable; -} \ No newline at end of file diff --git a/WebContent/html/javascript/shoppingCart.js b/WebContent/html/javascript/shoppingCart.js deleted file mode 100644 index ff47c6a..0000000 --- a/WebContent/html/javascript/shoppingCart.js +++ /dev/null @@ -1,242 +0,0 @@ -//here are all the hardcoded devices - -var dev1 = { - id: 1, - name:"George", - description:"George is probably the coolest iPhone to exist. Ever. Point blank, period.", - hardware:"iPhone", - software:"apple", -}; - -var dev2 = { - id: 2, - name:"Greyson", - description:"Greyson is pretty cool.. I guess.", - hardware:"iPhone", - software:"apple", -}; - -var dev3 = { - id: 3, - name:"Linkin Park", - description:'"The hardest part of ending is starting again."', - hardware:"iPad", - software:"apple", -}; - -var dev4 = { - id: 4, - name:"Abercrombie", - description:"To all the people that hated me in high school, I have the prettiest clothes you all wear now!!", - hardware:"iPad", - software:"apple", -}; - -var dev5 = { - id: 5, - name:"Hulk", - description:"Go ahead and HULK SMASH! this awesome computer stick into your USB.", - hardware:"Computer Stick", - software:"intel", -}; - -var dev6 = { - id: 6, - name:"Captain America", - description:""Make America Great Again." Wait, thats someone else..", - hardware:"Computer Stick", - software:"intel", -}; - -var devices = [dev1, dev2, dev3, dev4, dev5, dev6]; //put them all into an array -var checked = new Array; //this is the array that will indicate whether a shopping cart item is checked off or not - -//adding event listeners to all the options, such as ordering and deleting -document.getElementById('os').addEventListener('click',showPopup); -document.getElementById('ds').addEventListener('click',deleteSelected); -document.getElementById('oa').addEventListener('click',showPopup); -document.getElementById('da').addEventListener('click',deleteAll); - -// Shipping form popup--------------------- -var orderForm = document.getElementById('orderInfoModal'); -var orderFormCloseButton = document.getElementById('closeOrderForm'); -orderFormCloseButton.addEventListener('click',hidePopup); -show(); //on load, we want to show everything - -function getCartItems(){ - var cart = new Array; //initiate array for them - var cart_str = localStorage.getItem('cart'); //get them from local storage - if (cart_str !== null) { //if there is at least one object already we need to convert it from JSON to string - cart = JSON.parse(cart_str); - } - return cart; //return value is an array -} - -/** -This function displays a list of devices that a user has currently in their shopping cart. -**/ -function show(){ - var cart = getCartItems(); //get all the cart items you want to show - var html = ''; //html string initially empty - var part1 = "nhpup.popup('"; - var part2 = "');" - if(cart.length !== 0){ //only continue if there are cart items - html += '

Tickets have been generated below based on your desired selections.


' - for(var i = 0; i < cart.length; i++){ //iterate cart - var id = cart[i]; //this gets the id value from the cart - for(var j = 0; j < devices.length; j++){ //iterate device list - if(devices[j].id === id){ //match the id's "nhpup.popup(' ');" - html += ''; //create listing of all the devices - break; //break out of loop when we match - } - } - } - } - else{ //no point in doing all that computing if the list is empty - html += 'Shopping cart is empty.'; //so give a nice error message. - } - - document.getElementById('shoppingContainer').innerHTML = html; //adds what we just generated to the webpage - - var checkboxes = document.getElementsByClassName('deviceCheckbox'); //get all the checkboxes we just placed! - for(var i = 0; i < checkboxes.length; i++){ //iterate them - checkboxes[i].addEventListener('click',changeStatus); //when we click on a checkbox, it should add/remove the id from the selected array - } - - var tickets = document.getElementsByClassName('ticket'); - for(var i = 0; i < tickets.length; i++){ - tickets[i].addEventListener('click',clickTicket); - } -} - -/** -This allows a ticket click to do the same thing as clicking on the checkbox. -**/ -function clickTicket(){ - var checkboxes = document.getElementsByClassName('deviceCheckbox'); - var id = this.getAttribute('id'); - id = parseInt(id.replace(/[^0-9\.]/g,''),10); - if(document.getElementById(id).checked == true){ - document.getElementById(id).checked = false; - for(var i = 0; i < checked.length; i++){ //iterate checked array - if(id == checked[i]) //find the right checkbox - checked.splice(i,1); //remove from the array - } - } - else{ - document.getElementById(id).checked = true; - checked.push(id); - } -} - -/** -When a checkbox is clicked, either a device needs to be checked or unchecked in the shopping cart. This function handles JUST that. -**/ -function changeStatus(){ - var id = this.getAttribute('id'); //get the checkbox's id - if(this.checked == true){ //we just checked it off - checked.push(id); //add item to the selected list - } - else{ //we just unchecked it - for(var i = 0; i < checked.length; i++){ //iterate checked array - if(id == checked[i]) //find the right checkbox - checked.splice(i,1); //remove from the array - } - } -} - -/** -This function takes all the devices we selected and simulates an order on them. -**/ -function showPopup(){ - orderForm.style.display = "block"; -} -function hidePopup(){ - orderForm.style.display = "none"; -} - -function orderSelected(){ - var response = confirm("Are you sure you'd like to order the selected items?"); - if(response == true){ //if they confirm - for(var i = 0; i < checked.length; i++){ //iterate all the checked off devices - var id = checked[i]; //get the id of each device - var requested = getRequestedItems(); //get the unavailable items - var cart = getCartItems(); //get the cart - requested.push(id); //add to unavailable list - for(var j = 0; j < cart.length; j++){ //iterate cart - if(cart[j] == id) //match id's - cart.splice(j,1); //remove from the cart - } - localStorage.setItem('requested', JSON.stringify(requested)); //update local storage - localStorage.setItem('cart', JSON.stringify(cart)); //update local storage - } - checked = new Array; //reset the checked off array - show(); //reload the container - } -} - -/** -This function takes all the devices we selected and removes them from the shopping cart. -**/ -function deleteSelected(){ - var response = confirm("Are you sure you'd like to remove the selected items from the cart?"); - if(response == true){ //if they confirm - for(var i = 0; i < checked.length; i++){ //iterate all the checked off devices - var id = checked[i]; //get the id of each device - var cart = getCartItems(); //get the cart - for(var j = 0; j < cart.length; j++){ //iterate cart - if(cart[j] == id){ //match ids - cart.splice(j,1); //remove from the cart - } - } - localStorage.setItem('cart', JSON.stringify(cart)); //update local storage - } - checked = new Array; //reset the checked array - show(); //reload the container - } -} - -/** -This function takes all devices in the shopping cart and orders them. -**/ -function orderAll(){ - var response = confirm("Are you sure you'd like to order the selected items?"); - if(response == true){ //if they confirm - var cart = getCartItems(); //get the cart - for(var i = 0; i < cart.length; i++){ //iterate the cart - var id = cart[i]; //get the id of each device - var requested = getRequestedItems(); //get the unavailable items - requested.push(id); //add to unavailable list - localStorage.setItem('requested', JSON.stringify(requested)); //update local storage - } - checked = new Array; //reset the checked off array - cart = new Array; //cart should now be empty, so reset also - localStorage.setItem('cart',JSON.stringify(cart)); //update local storage - show(); //reload container - } -} - -/** -This function takes all devices in the shopping cart and deletes them. -**/ -function deleteAll(){ - var response = confirm("Are you sure you'd like to order the selected items?"); - if(response == true){ //if they confirm - cart = new Array; //empty cart - localStorage.setItem('cart',JSON.stringify(cart)); //update local storage - checked = new Array; //reset the checked off array - show(); //reload container - } -} - -/** -This function gets requested items from local storage. -**/ -function getRequestedItems(){ - var requested = new Array; //make new array - var requested_str = localStorage.getItem('requested'); //get the string from local storage - if(requested_str !== '' && requested_str !== null){ //as long as its not null - requested = JSON.parse(requested_str); //make into array - } - return requested; //return value is an array -} \ No newline at end of file diff --git a/WebContent/html/javascript/statistics.jsp b/WebContent/html/javascript/statistics.jsp new file mode 100644 index 0000000..c5de328 --- /dev/null +++ b/WebContent/html/javascript/statistics.jsp @@ -0,0 +1,120 @@ +<%@ page import="database.*,entities.Statistics"%> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + +Insert title here + + + <% +Statistics[] genStatistics = StatisticsQueries.getStatistics(); +String statString = Statistics.arrayToString(genStatistics); +%> + + + + \ No newline at end of file diff --git a/WebContent/html/webpages/adminApprove.html b/WebContent/html/webpages/adminApprove.html deleted file mode 100644 index f73865e..0000000 --- a/WebContent/html/webpages/adminApprove.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - Synchrony Financial - - - - - - - - - - - - -
-

Admin View Approvals

-
-
- -
-

Approved!

-
- - - - - \ No newline at end of file diff --git a/WebContent/html/webpages/admin.html b/WebContent/html/webpages/administration/admin.jsp similarity index 70% rename from WebContent/html/webpages/admin.html rename to WebContent/html/webpages/administration/admin.jsp index cc969b6..d74b3fc 100644 --- a/WebContent/html/webpages/admin.html +++ b/WebContent/html/webpages/administration/admin.jsp @@ -7,7 +7,7 @@ -Synchrony Financial +Innovation Hub @@ -15,9 +15,9 @@ src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"> - + + href="../../imgs/synchrony-financial-logo-dlpx_1.ico"> + + + + + + + + + + +
+

Admin View Approvals

+
+ +
+ + + + + + + + + + + + + + +
Ticket IDRequestor NameLocation NameDevice NameStatusPermanent?Return Date
+
+ +<% +/* + Get all tickets that need to be reviewed for approval from the server. +*/ +Ticket[] tickets = TicketQueries.getRequestedTickets(); +String ticketStr = Ticket.arrayToString(tickets); +%> + + + + + \ No newline at end of file diff --git a/WebContent/html/webpages/administration/adminDeviceSettings.jsp b/WebContent/html/webpages/administration/adminDeviceSettings.jsp new file mode 100644 index 0000000..476c6a3 --- /dev/null +++ b/WebContent/html/webpages/administration/adminDeviceSettings.jsp @@ -0,0 +1,544 @@ +<%@ page import = "database.*,entities.Device" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" +pageEncoding="ISO-8859-1"%> + + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Device Hub

+
+ + +
+ + + + + + + + + + + + + + + + + + + + + +
NameLocker PositionDescriptionAdmin CommentsAvailabilityMAC AddressManufacturerHardware TypeOperating SystemModel NameSerial NumberNFC ID
+
+<% +//database query +Device[] devices = DeviceQueries.getAllDevices(); +//string representation of array. +String deviceString = Device.arrayToString(devices); +deviceString = deviceString.replace("'","\\'"); +%> + + + + + \ No newline at end of file diff --git a/WebContent/html/webpages/administration/adminLocation.jsp b/WebContent/html/webpages/administration/adminLocation.jsp new file mode 100644 index 0000000..4868e39 --- /dev/null +++ b/WebContent/html/webpages/administration/adminLocation.jsp @@ -0,0 +1,382 @@ +<%@ page import = "database.*,entities.Location" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + + + + + + + + +
+

Location Listing

+ + + + + + + + + + + + + +
NameAddressTownStateZip Code
+ +
+<% +//database query to get locations that all employees can access +Location[] locations = LocationQueries.getAdminLocations(); +//string representation of array. +String locationString = Location.arrayToString(locations); +locationString = locationString.replace("'","\\'"); +%> + + + \ No newline at end of file diff --git a/WebContent/html/webpages/administration/adminpassword.jsp b/WebContent/html/webpages/administration/adminpassword.jsp new file mode 100644 index 0000000..02199d0 --- /dev/null +++ b/WebContent/html/webpages/administration/adminpassword.jsp @@ -0,0 +1,55 @@ + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + +
+ +
+

Change Your Password

+

Since it is your first time logging in, you need to update your password.

+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/WebContent/html/webpages/administration/adminpasswordsetting.jsp b/WebContent/html/webpages/administration/adminpasswordsetting.jsp new file mode 100644 index 0000000..332a828 --- /dev/null +++ b/WebContent/html/webpages/administration/adminpasswordsetting.jsp @@ -0,0 +1,62 @@ + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + + + +
+ +
+

Change Your Password

+
+ + +
+
+ + +
+
+ + +
+ +
+
+

Change Pincode

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/WebContent/html/webpages/administration/adminpasswordsettingtryagain.jsp b/WebContent/html/webpages/administration/adminpasswordsettingtryagain.jsp new file mode 100644 index 0000000..306e39b --- /dev/null +++ b/WebContent/html/webpages/administration/adminpasswordsettingtryagain.jsp @@ -0,0 +1,63 @@ + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + + + +
+ +
+

Something went wrong. Try again!

+

Change Your Password

+
+ + +
+
+ + +
+
+ + +
+ +
+
+

Change Pincode

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/WebContent/html/webpages/administration/adminpasswordtryagain.jsp b/WebContent/html/webpages/administration/adminpasswordtryagain.jsp new file mode 100644 index 0000000..29ac487 --- /dev/null +++ b/WebContent/html/webpages/administration/adminpasswordtryagain.jsp @@ -0,0 +1,56 @@ + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + +
+ +
+

Change Your Password

+

Since it is your first time logging in, you need to update your password.

+

Please make sure your old password is correct, your new ones are new and matching, and your pincode is 4 digits long.

+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/WebContent/html/webpages/administration/allTickets.jsp b/WebContent/html/webpages/administration/allTickets.jsp new file mode 100644 index 0000000..339bfb0 --- /dev/null +++ b/WebContent/html/webpages/administration/allTickets.jsp @@ -0,0 +1,256 @@ +<%@ page import = "database.*,entities.*" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" +pageEncoding="ISO-8859-1"%> + + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + + + + + + + + + + +
+

All Tickets

+ +
+ +
+ + + + + + + + + + + + + + +
Ticket IDRequestor NameLocation NameDevice NameStatusPermanent?Return Date
+
+ +<% +/* + Get all tickets. +*/ +Ticket[] tickets = TicketQueries.getAllTickets(); +String ticketStr = Ticket.arrayToString(tickets); +%> + + + + + \ No newline at end of file diff --git a/WebContent/html/webpages/administration/ticketApprove.jsp b/WebContent/html/webpages/administration/ticketApprove.jsp new file mode 100644 index 0000000..7116095 --- /dev/null +++ b/WebContent/html/webpages/administration/ticketApprove.jsp @@ -0,0 +1,70 @@ +<%@ page import = "database.*,entities.Location" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + +
+

Approving Tickets

+

Thanks for approving a ticket!

+

You can ship the devices to the following address:

+
+ Synchrony Financial

+
+
+ +
+
+ +<% +int locationid = -1; +for(Cookie c : usercookies){ + if(c.getName().equals("location")){ + locationid = Integer.parseInt(c.getValue()); + c.setMaxAge(0); + c.setPath("/"); + response.addCookie(c); + } +} +Location location = LocationQueries.getLocationByID(locationid); +String address = location.getAddress(); +String town = location.getTown(); +String state = location.getState(); +String zip = location.getZip(); +%> + + \ No newline at end of file diff --git a/WebContent/html/webpages/components/adminnavbar.jsp b/WebContent/html/webpages/components/adminnavbar.jsp new file mode 100644 index 0000000..4bfbe33 --- /dev/null +++ b/WebContent/html/webpages/components/adminnavbar.jsp @@ -0,0 +1,84 @@ +<%@ page import = "database.*,entities.User,utilities.Mail" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> +
+ + + <% + Cookie[] usercookies = request.getCookies(); + String navsso = "invalid"; + String navname = "error"; + int admin = 0; + + //iterate cookies + if(usercookies != null){ + for(Cookie c : usercookies){ + if(c.getName().equals("ssoNum") || c.getName().equals("admin")){//when (and if) we get to user cookie we want to reset it + navsso = c.getValue(); + c.setMaxAge(30*60);//delete current + c.setPath("/"); + response.addCookie(c); + } + if(c.getName().equals("admin")){ + admin = 1; + } + if(c.getName().equals("name")){ + navname = c.getValue(); + c.setMaxAge(30*60); + c.setPath("/"); + response.addCookie(c); + } + } + } + if(navsso.equals("invalid")){//if we didn't get a cookie, redirect to the homepage to log in again! + response.sendRedirect("../../../index.jsp"); + return; + } + else{ + if(admin == 0){//non admin trying to trespass + response.sendRedirect("../index.jsp"); + return; + } + } + %> +
+ \ No newline at end of file diff --git a/WebContent/html/webpages/components/adminsidebar.jsp b/WebContent/html/webpages/components/adminsidebar.jsp new file mode 100644 index 0000000..537e7f6 --- /dev/null +++ b/WebContent/html/webpages/components/adminsidebar.jsp @@ -0,0 +1,12 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> + \ No newline at end of file diff --git a/WebContent/html/webpages/components/navbar.jsp b/WebContent/html/webpages/components/navbar.jsp new file mode 100644 index 0000000..99c35ac --- /dev/null +++ b/WebContent/html/webpages/components/navbar.jsp @@ -0,0 +1,78 @@ +<%@ page import = "database.*,entities.User,utilities.Mail" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> +
+ + + <% + Cookie[] usercookies = request.getCookies(); + String navsso = "invalid"; + String navname = "error"; + int admin = 0; + + //iterate cookies + if(usercookies != null){ + for(Cookie c : usercookies){ + if(c.getName().equals("ssoNum") || c.getName().equals("admin")){//when (and if) we get to user cookie we want to reset it + navsso = c.getValue(); + c.setMaxAge(30*60);//delete current + c.setPath("/"); + response.addCookie(c); + } + if(c.getName().equals("admin")){ + admin = 1; + } + if(c.getName().equals("name")){ + navname = c.getValue(); + c.setMaxAge(30*60); + c.setPath("/"); + response.addCookie(c); + } + } + } + if(navsso.equals("invalid")){//if we didn't get a cookie, redirect to the homepage to log in again! + response.sendRedirect("../../index.jsp"); + return; + } + %> +
+ \ No newline at end of file diff --git a/WebContent/html/webpages/error.jsp b/WebContent/html/webpages/error.jsp new file mode 100644 index 0000000..ca6df45 --- /dev/null +++ b/WebContent/html/webpages/error.jsp @@ -0,0 +1,40 @@ + + + + + + + + + + + Innovation Hub + + + + + + + + + + + +
+

Error

+ +

Page Does Not Exist

+
+ + \ No newline at end of file diff --git a/WebContent/html/webpages/index.html b/WebContent/html/webpages/index.jsp similarity index 85% rename from WebContent/html/webpages/index.html rename to WebContent/html/webpages/index.jsp index 3993eb2..d9b30e3 100644 --- a/WebContent/html/webpages/index.html +++ b/WebContent/html/webpages/index.jsp @@ -7,7 +7,7 @@ - Synchrony Financial + Innovation Hub @@ -42,18 +42,18 @@ - - - + \ No newline at end of file diff --git a/WebContent/html/webpages/listingPage.jsp b/WebContent/html/webpages/listingPage.jsp index d2f6067..79ea098 100644 --- a/WebContent/html/webpages/listingPage.jsp +++ b/WebContent/html/webpages/listingPage.jsp @@ -1,79 +1,98 @@ - - - - - - - - - - - Synchrony Financial - - - - - - - - - - - - - -
-

Device Dictionary

-
-
- - <%@ include file="../javascript/listing.jsp" %> - - + + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + + +
+

Device Dictionary + +
+ +
+

+
+
+ +<%@ include file="../javascript/listing.jsp" %> + \ No newline at end of file diff --git a/WebContent/html/webpages/logout.jsp b/WebContent/html/webpages/logout.jsp new file mode 100644 index 0000000..c06ec2b --- /dev/null +++ b/WebContent/html/webpages/logout.jsp @@ -0,0 +1,24 @@ +<%@ page import = "database.*" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> +<%@ page import = "java.sql.*" %> + +<% +Cookie[] usercookies = request.getCookies(); +if(usercookies != null){ + request.getSession(); + session.removeAttribute("ssoNum"); + session.removeAttribute("admin"); + session.invalidate(); + for(Cookie c : usercookies){ + if(c.getName().equals("ssoNum") || c.getName().equals("admin")){//when (and if) we get to user cookie we want to reset it + c.setValue(""); + c.setPath("/"); + c.setMaxAge(0);//delete current + response.addCookie(c); + } + } +} +response.sendRedirect("../../index.jsp"); +return; +%> \ No newline at end of file diff --git a/WebContent/html/webpages/map.html b/WebContent/html/webpages/map.html deleted file mode 100644 index 5256954..0000000 --- a/WebContent/html/webpages/map.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - Synchrony Financial - - - - - - - - - - - - - - - -

Our Wonderful Synchrony Financial Map!

- -
- - - - - - - \ No newline at end of file diff --git a/WebContent/html/webpages/profileSettings.jsp b/WebContent/html/webpages/profileSettings.jsp new file mode 100644 index 0000000..8cf0fec --- /dev/null +++ b/WebContent/html/webpages/profileSettings.jsp @@ -0,0 +1,328 @@ +<%@ page import = "database.*,entities.User" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + + + + + + <% + User self = EmployeeQueries.getEmployeeByID(Integer.parseInt(navsso)); + %> + + + + + + + +
+
+ +
+ +
+
+

Change profile image:

+ +
+
+ +
+

Profile Settings

+
+ + + +
+
+ + + +
+
+ + +
+
+ + +
+ + +
+
+ + + + + + + + \ No newline at end of file diff --git a/WebContent/html/webpages/redirect/adminpasswordchange.jsp b/WebContent/html/webpages/redirect/adminpasswordchange.jsp new file mode 100644 index 0000000..b0181bb --- /dev/null +++ b/WebContent/html/webpages/redirect/adminpasswordchange.jsp @@ -0,0 +1,126 @@ +<%@ page import = "database.*,entities.Device" %> +<%@ page import = "java.sql.*" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> +<%@ page import = "java.security.MessageDigest" %> +<%@ page import = "java.security.NoSuchAlgorithmException" %> + + + + + + + + + + + Synchrony Financial + + + + + + + + +

Redirect Page

+

You shouldn't be seeing this page :)

+ +<% +//add form was submitted +if(request.getParameter("submit") != null){ + String old = request.getParameter("old"); + String newpass = request.getParameter("new"); + String confirm = request.getParameter("confirm"); + String pincode = request.getParameter("pincode"); + String generatedOldPass = null; + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + md.update(old.getBytes()); + byte[] bytes = md.digest(); + StringBuilder sb = new StringBuilder(); + for(int i = 0; i + + \ No newline at end of file diff --git a/WebContent/html/webpages/redirect/adminpasswordupdate.jsp b/WebContent/html/webpages/redirect/adminpasswordupdate.jsp new file mode 100644 index 0000000..5dc7241 --- /dev/null +++ b/WebContent/html/webpages/redirect/adminpasswordupdate.jsp @@ -0,0 +1,205 @@ +<%@ page import = "database.*,entities.Device" %> +<%@ page import = "java.sql.*" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> +<%@ page import = "java.security.MessageDigest" %> +<%@ page import = "java.security.NoSuchAlgorithmException" %> + + + + + + + + + + + Synchrony Financial + + + + + + + + +

Redirect Page

+

You shouldn't be seeing this page :)

+ +<% +/* + We follow into this "if" statement if the password change form was submitted. +*/ +if(request.getParameter("password") != null){ + /* + Gathering form information that the user submitted. + */ + String old = request.getParameter("old"); + String newpass = request.getParameter("new"); + String confirm = request.getParameter("confirm"); + String generatedOldPass = null; + + /* + This uses MD5 to hash the old password the user entered in, so it can be compared against what is in the DB. + */ + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + md.update(old.getBytes()); + byte[] bytes = md.digest(); + StringBuilder sb = new StringBuilder(); + for(int i = 0; i + + \ No newline at end of file diff --git a/WebContent/html/webpages/redirect/createProfile.jsp b/WebContent/html/webpages/redirect/createProfile.jsp new file mode 100644 index 0000000..e3f9b4c --- /dev/null +++ b/WebContent/html/webpages/redirect/createProfile.jsp @@ -0,0 +1,54 @@ +<%@ page import = "database.*,entities.Device" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + + + + + + + + Synchrony Financial + + + + + + + + +

Redirect Page

+

You shouldn't be seeing this page :)

+ +<% +//make instance +Cookie userCookie,newCookie; +String sso = request.getParameter("sso"); +String name = request.getParameter("name"); +String loc = request.getParameter("loc"); +String ph = request.getParameter("ph"); +String email = request.getParameter("email"); +//form was submitted +if(request.getParameter("submit") != null){ + EmployeeQueries.addEmployee(sso,loc,name,ph,email); + request.getSession(); + session.setAttribute("ssoNum", sso); + userCookie = new Cookie("ssoNum", sso); + userCookie.setMaxAge(30*60); + userCookie.setPath("/"); + response.addCookie(userCookie); + newCookie = new Cookie("name",name); + newCookie.setMaxAge(30*60); + newCookie.setPath("/"); + response.addCookie(newCookie); + response.sendRedirect("../index.jsp"); +} + +%> + + \ No newline at end of file diff --git a/WebContent/html/webpages/redirect/deviceRedirect.jsp b/WebContent/html/webpages/redirect/deviceRedirect.jsp new file mode 100644 index 0000000..9fc22b5 --- /dev/null +++ b/WebContent/html/webpages/redirect/deviceRedirect.jsp @@ -0,0 +1,70 @@ +<%@ page import = "database.*,entities.Device" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + + + + + + + + Synchrony Financial + + + + + + + + +

Redirect Page

+

You shouldn't be seeing this page :)

+ +<% +//make instance +String name = request.getParameter("name").replace("\"","\\\""); +String description = request.getParameter("description").replace("\"","\\\""); +String status = request.getParameter("status"); +String mac = request.getParameter("MAC"); +String manufacturer = request.getParameter("manu").replace("\"","\\\""); +String hardware = request.getParameter("hardware").replace("\"","\\\""); +String model = request.getParameter("model").replace("\"","\\\""); +String serial = request.getParameter("serial"); +String nfc = request.getParameter("NFC"); +String os = request.getParameter("OS"); +String locker = request.getParameter("locker"); +String comment = request.getParameter("admincomments"); +//add form was submitted +if(request.getParameter("add") != null){ + Device device = new Device(name,1,description,hardware,model,manufacturer,status,mac,serial,nfc,locker,os,comment,""); + DeviceQueries.addDevice(device); +} + +//modify form was submitted +if(request.getParameter("modify") != null){ + //getParameter() always returns string + String strID = request.getParameter("id"); + //turn to int for constructor + int id = Integer.parseInt(strID); + Device device = new Device(name,id,description,hardware,model,manufacturer,status,mac,serial,nfc,locker,os,comment,""); + DeviceQueries.modifyDevice(device); +} + +//delete form was submitted +if(request.getParameter("delete") != null){ + String strID = request.getParameter("id"); + int id = Integer.parseInt(strID); + DeviceQueries.deleteDevice(id); +} + +%> + + + \ No newline at end of file diff --git a/WebContent/html/webpages/redirect/locationRedirect.jsp b/WebContent/html/webpages/redirect/locationRedirect.jsp new file mode 100644 index 0000000..9c80f3d --- /dev/null +++ b/WebContent/html/webpages/redirect/locationRedirect.jsp @@ -0,0 +1,67 @@ +<%@ page import = "database.*,entities.Location" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + + + + + + + + Synchrony Financial + + + + + + + + +

Redirect Page

+

You shouldn't be seeing this page :)

+ +<% +//make instance +String name = request.getParameter("name").replace("\"","\\\""); +String address = request.getParameter("address").replace("\"","\\\""); +String town = request.getParameter("town").replace("\"","\\\""); +String state = request.getParameter("state"); +String zip = request.getParameter("zip"); +String lat = request.getParameter("lat"); +String lng = request.getParameter("lng"); +int er = 0; +//add form was submitted +if(request.getParameter("add") != null){ + Location location = new Location(0,name,address,town,state,zip,0,lat,lng,0,0); + LocationQueries.addLocation(location); +} +//modify form was submitted +if(request.getParameter("modify") != null){ + //getParameter() always returns string + String strID = request.getParameter("id"); + //turn to int for constructor + int id = Integer.parseInt(strID); + Location location = new Location(id,name,address,town,state,zip,0,lat,lng,0,0); + LocationQueries.modifyLocation(location); +} +//delete form was submitted +if(request.getParameter("delete") != null){ + String strID = request.getParameter("id"); + int id = Integer.parseInt(strID); + er = LocationQueries.deleteLocation(id); +} +%> + + + + \ No newline at end of file diff --git a/WebContent/html/webpages/redirect/notificationSettingsRedirect.jsp b/WebContent/html/webpages/redirect/notificationSettingsRedirect.jsp new file mode 100644 index 0000000..171a581 --- /dev/null +++ b/WebContent/html/webpages/redirect/notificationSettingsRedirect.jsp @@ -0,0 +1,33 @@ +<%@ page import = "database.*,entities.Device" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" +pageEncoding="ISO-8859-1"%> + + + + + + + + + + + Synchrony Financial + + + + + + +<% + int user = Integer.parseInt(request.getParameter("prefferedNotificationInteger")); + int prefs = Integer.parseInt(request.getParameter("user")); + EmployeeQueries.updateNotificationPreferences(prefs,user); +%> + + + + \ No newline at end of file diff --git a/WebContent/html/webpages/redirect/orderFormHandler.jsp b/WebContent/html/webpages/redirect/orderFormHandler.jsp new file mode 100644 index 0000000..aff74f9 --- /dev/null +++ b/WebContent/html/webpages/redirect/orderFormHandler.jsp @@ -0,0 +1,93 @@ +<%@ page import = "database.*,entities.Location" %> +<%@ page import = "entities.User" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" +pageEncoding="ISO-8859-1"%> + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WebContent/html/webpages/redirect/profileSettingsRedirect.jsp b/WebContent/html/webpages/redirect/profileSettingsRedirect.jsp new file mode 100644 index 0000000..a85d0fc --- /dev/null +++ b/WebContent/html/webpages/redirect/profileSettingsRedirect.jsp @@ -0,0 +1,46 @@ +<%@ page import = "database.*,entities.Device" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + + + + + + + + Synchrony Financial + + + + + + + +

Redirect Page

+

You shouldn't be seeing this page :)

+ +<% +//make instance +String name = request.getParameter("name").replace("\"","\\\""); +int id = Integer.parseInt(request.getParameter("sso")); +String phone = request.getParameter("phone"); +String email = request.getParameter("email"); +int img = Integer.parseInt(request.getParameter("img")); + +//change form was submitted +if(request.getParameter("profile") != null){ + EmployeeQueries.updateEmployee(id, name, img, phone, email); +} + +%> + + + + \ No newline at end of file diff --git a/WebContent/html/webpages/redirect/ticketAdminRedirect.jsp b/WebContent/html/webpages/redirect/ticketAdminRedirect.jsp new file mode 100644 index 0000000..2ab57a0 --- /dev/null +++ b/WebContent/html/webpages/redirect/ticketAdminRedirect.jsp @@ -0,0 +1,69 @@ +<%@ page import = "database.*" %> +<%@ page import = "utilities.NotificationQueue" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + + + + + + + + Synchrony Financial + + + + + + + + +<% +//make instance +String ticketidstr = request.getParameter("ticketid"); +String deviceidstr = request.getParameter("deviceid"); +String locationidstr = request.getParameter("locationid"); +String permanent = request.getParameter("permField"); +int ticketid = Integer.parseInt(ticketidstr); +int deviceid = Integer.parseInt(deviceidstr); +int locationid = Integer.parseInt(locationidstr); +int perm = permanent.equals("Yes") ? 1 : 0; + +//approve form was submitted +if(request.getParameter("approve") != null){ + Cookie location = new Cookie("location",Integer.toString(locationid)); + location.setMaxAge(30*60); + location.setPath("/"); + response.addCookie(location); + TicketQueries.acceptTicket(ticketid,deviceid,locationid,Integer.parseInt(navsso),perm); + User client = EmployeeQueries.getEmployeeByID(TicketQueries.getUserID(ticketid)); + boolean notificationPreferences = (Math.floor(client.getNotificationPreferences()/2)%2==1); + //The second least significant bit of notificationPreferences - the 2's place - is used for ticket approval notifications. + if(notificationPreferences){ + NotificationQueue q = new NotificationQueue(client,"ticketConfirmations"); + q.start(); + response.sendRedirect("../administration/ticketApprove.jsp"); + return; + } +} +//reject form was submitted +if(request.getParameter("reject") != null){ + TicketQueries.rejectTicket(ticketid); + User client = EmployeeQueries.getEmployeeByID(TicketQueries.getUserID(ticketid)); + boolean notificationPreferences = (Math.floor(client.getNotificationPreferences()/4)%2==1); + //The third least significantbit of notificationPreferences - te 4's place - is used for ticket rejection notifications. + if(notificationPreferences){ + NotificationQueue q = new NotificationQueue(client, "ticketRejections"); + q.start(); + response.sendRedirect("../administration/adminApprove.jsp"); + return; + } +} +%> + + \ No newline at end of file diff --git a/WebContent/html/webpages/requestPage.html b/WebContent/html/webpages/requestPage.jsp similarity index 60% rename from WebContent/html/webpages/requestPage.html rename to WebContent/html/webpages/requestPage.jsp index 7ac04a7..0e2822c 100644 --- a/WebContent/html/webpages/requestPage.html +++ b/WebContent/html/webpages/requestPage.jsp @@ -1,104 +1,115 @@ - - - - - - - - - - Synchrony Financial - - - - - - - - - - - - - -
-

Available Devices

-

Choose an option to the left to begin requesting!

-
- -
-

Added to Cart

-
- -
-

Already in Cart

-
- - - - + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + +
+

Available Devices + +

+
+ +
+

Or choose an option to the left to begin requesting!

+
+ +
+

Added to Cart

+
+ +
+

Already in Cart

+
+ + <%@ include file="../javascript/request.jsp" %> + \ No newline at end of file diff --git a/WebContent/html/webpages/returnComplete.jsp b/WebContent/html/webpages/returnComplete.jsp new file mode 100644 index 0000000..398daa8 --- /dev/null +++ b/WebContent/html/webpages/returnComplete.jsp @@ -0,0 +1,44 @@ +<%@ page import = "database.*" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" +pageEncoding="ISO-8859-1"%> + + + + + + + + + + + Innovation Hub + + + + + + + + + + +
+

Returning Devices

+

Thanks for returning some devices!

+

You can ship the devices to the following address:

+
+ Synchrony Financial
ATTN: Jake Miller
777 Long Ridge Road
Stamford, CT
06902 +
+
+ +
+
+ <% +//get string from request form + String devices = request.getParameter("devicesToReturn"); + DeviceQueries.returnDevices(devices); + %> + + \ No newline at end of file diff --git a/WebContent/html/webpages/returnPage.html b/WebContent/html/webpages/returnPage.html deleted file mode 100644 index fdcda6c..0000000 --- a/WebContent/html/webpages/returnPage.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - Synchrony Financial - - - - - - - - - - - -
-

Devices to Be Returned

-
-
-
-
-

Returned

-
- - - - \ No newline at end of file diff --git a/WebContent/html/webpages/returnPage.jsp b/WebContent/html/webpages/returnPage.jsp new file mode 100644 index 0000000..14aef23 --- /dev/null +++ b/WebContent/html/webpages/returnPage.jsp @@ -0,0 +1,302 @@ +<%@ page import = "database.*,entities.Device" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" +pageEncoding="ISO-8859-1"%> + + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + +
+

Devices to Be Returned

+ +
+
+
+ +<% +Device[] mydevices = DeviceQueries.getUserDevices(navsso); +//string representation of array. +String deviceString = Device.arrayToString(mydevices); +%> + + + + \ No newline at end of file diff --git a/WebContent/html/webpages/shoppingCart.html b/WebContent/html/webpages/shoppingCart.html deleted file mode 100644 index a2768b4..0000000 --- a/WebContent/html/webpages/shoppingCart.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - Synchrony Financial - - - - - - - - - - - - - - - - -
-

Welcome to your shopping cart!

-
-
-
- - - - - - - \ No newline at end of file diff --git a/WebContent/html/webpages/shoppingCart.jsp b/WebContent/html/webpages/shoppingCart.jsp new file mode 100644 index 0000000..8b5a3e3 --- /dev/null +++ b/WebContent/html/webpages/shoppingCart.jsp @@ -0,0 +1,545 @@ +<%@ page import = "database.*" %> +<%@ page import = "entities.User" %> +<%@ page import = "entities.Location" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" +pageEncoding="ISO-8859-1"%> + + + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + + + + + +
+

Welcome to your shopping cart!

+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/WebContent/html/webpages/somethingwrong.jsp b/WebContent/html/webpages/somethingwrong.jsp new file mode 100644 index 0000000..ef5d188 --- /dev/null +++ b/WebContent/html/webpages/somethingwrong.jsp @@ -0,0 +1,40 @@ + + + + + + + + + + + Innovation Hub + + + + + + + + + + + +
+

Something Went Wrong!

+ +

Try Again Later.

+
+ + \ No newline at end of file diff --git a/WebContent/html/webpages/statisticsPage.jsp b/WebContent/html/webpages/statisticsPage.jsp new file mode 100644 index 0000000..7ab7d64 --- /dev/null +++ b/WebContent/html/webpages/statisticsPage.jsp @@ -0,0 +1,119 @@ + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + + + +

Distribution of Devices Nationwide

+ +
+ + + +

Device Availability Statistics

+
+
+
+
+
+
+
+ <%@ include file="../javascript/statistics.jsp" %> + + \ No newline at end of file diff --git a/WebContent/html/webpages/userLogin.jsp b/WebContent/html/webpages/userLogin.jsp new file mode 100644 index 0000000..8710b0b --- /dev/null +++ b/WebContent/html/webpages/userLogin.jsp @@ -0,0 +1,126 @@ +<%@ page import = "database.*,entities.Location" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" +pageEncoding="ISO-8859-1"%> +<%@ page import = "java.sql.*" %> + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + + + +<% +Cookie userCookie,newCookie; + +int ssoNum = Integer.parseInt(request.getParameter("username")); + +Class.forName("com.mysql.jdbc.Driver"); +String database = "jdbc:mysql://us-cdbr-iron-east-04.cleardb.net/ad_15a989204c2ff8a?user=b372dfe7409692&password=74f6e317"; +String user = "b372dfe7409692"; +String password = "74f6e317"; +Connection connection; +Statement stmt; +for(;;){ + try{ + connection = DriverManager.getConnection(database, user, password); + break; + } + catch(SQLException e){ + Thread.sleep(1); + } +} +for(;;){ + try{ + stmt = connection.createStatement(); + break; + } + catch(SQLException e){ + Thread.sleep(1); + } +} +ResultSet result; +result = stmt.executeQuery("select * FROM employee where Employee_ID='" + ssoNum + "'"); + +if (result.next()){ + request.getSession(); + session.setAttribute("ssoNum", ssoNum); + newCookie = new Cookie("name",result.getString("Name")); + stmt.close(); + connection.close(); + newCookie.setMaxAge(30*60); + newCookie.setPath("/"); + response.addCookie(newCookie); + userCookie = new Cookie("ssoNum", Integer.toString(ssoNum)); + userCookie.setMaxAge(30*60); + userCookie.setPath("/"); + response.addCookie(userCookie); + response.sendRedirect("index.jsp"); +} +connection.close(); +stmt.close(); +String locations = Location.arrayToString(LocationQueries.getLocations(ssoNum)); +%> + + \ No newline at end of file diff --git a/WebContent/index.jsp b/WebContent/index.jsp index 91eca06..16d5526 100644 --- a/WebContent/index.jsp +++ b/WebContent/index.jsp @@ -1,24 +1,29 @@ -<%@ page import = "database.MySQLAccess" %> +<%@ page import = "database.*,entities.User" %> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" - pageEncoding="ISO-8859-1"%> +pageEncoding="ISO-8859-1"%> +<%@ page import = "java.sql.*" %> - - - - - - + + + + + + - Synchrony Financial + Innovation Hub + + + + + + + + -