CVE-2013-10008 (published 2023-01-06T22:15Z)

A vulnerability was found in sheilazpy eShop. It has been classified as critical. Affected is an unknown function. The manipulation leads to sql injection. The name of the patch is e096c5849c4dc09e1074104531014a62a5413884. It is recommended to apply a patch to fix this issue. The identifier of this vulnerability is VDB-217572.

CVSS v3 base score: 9.8, CRITICAL (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)

Weakness information:
cwe_id: CWE-89
cwe_name: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
description: The product constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component. Without sufficient removal or quoting of SQL syntax in user-controllable inputs, the generated SQL query can cause those inputs to be interpreted as SQL instead of ordinary user data.
extended_description: 
            
            
         
         

Fix information:
repo_url: https://github.com/sheilazpy/eShop
commit_details: repo_url: https://github.com/sheilazpy/eShop
author: Zh G
author_date: 2013-01-13 21:31:02+02:00
msg: some sql injection vulnerabilities fixes

+ some sql injection vulnerabilities fixes
+ new sql injection safe methods in mysql wrapper
repository: repo_url: https://github.com/sheilazpy/eShop
repo_name: sheilazpy/eShop
description: university java course project
repo_language: Java
owner: sheilazpy
file_changes: filename: .log
change_type: ModificationType.MODIFY
diff: @@ -3650,3 +3650,236 @@ java.lang.NullPointerException: Cannot set a null prefix table
 	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
 	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
 	at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
+!SESSION 2013-01-13 17:51:13.371 -----------------------------------------------
+eclipse.buildId=unknown
+java.version=1.5.0_12
+java.vendor=Sun Microsystems Inc.
+BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=bg_BG
+Command-line arguments:  -os win32 -ws win32 -arch x86
+
+!ENTRY org.eclipse.ui.workbench 2 0 2013-01-13 17:56:29.885
+!MESSAGE A handler conflict occurred.  This may disable some commands.
+!SUBENTRY 1 org.eclipse.ui.workbench 2 0 2013-01-13 17:56:29.885
+!MESSAGE Conflict for 'AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action6':
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action6,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScriptForEmail),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@180e7a4),sourcePriority=16384)
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action6,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScriptForEmail),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@180e7a4),sourcePriority=16384)
+!SUBENTRY 1 org.eclipse.ui.workbench 2 0 2013-01-13 17:56:29.885
+!MESSAGE Conflict for 'AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action2':
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action2,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScriptForBlogger),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@180e7a4),sourcePriority=16384)
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action2,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScriptForBlogger),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@180e7a4),sourcePriority=16384)
+!SUBENTRY 1 org.eclipse.ui.workbench 2 0 2013-01-13 17:56:29.885
+!MESSAGE Conflict for 'AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action4':
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action4,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScriptForWiki),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@180e7a4),sourcePriority=16384)
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action4,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScriptForWiki),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@180e7a4),sourcePriority=16384)
+!SUBENTRY 1 org.eclipse.ui.workbench 2 0 2013-01-13 17:56:29.885
+!MESSAGE Conflict for 'AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action5':
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action5,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScript),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@180e7a4),sourcePriority=16384)
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action5,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScript),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@180e7a4),sourcePriority=16384)
+
+!ENTRY org.eclipse.ui.workbench 4 0 2013-01-13 20:22:29.167
+!MESSAGE Cannot set a null prefix table
+!STACK 0
+java.lang.NullPointerException: Cannot set a null prefix table
+	at org.eclipse.jface.bindings.CachedBindingSet.setPrefixTable(CachedBindingSet.java:346)
+	at org.eclipse.jface.bindings.BindingManager.recomputeBindings(BindingManager.java:1765)
+	at org.eclipse.jface.bindings.BindingManager.contextManagerChanged(BindingManager.java:689)
+	at org.eclipse.core.commands.contexts.ContextManager.fireContextManagerChanged(ContextManager.java:152)
+	at org.eclipse.core.commands.contexts.ContextManager.removeActiveContext(ContextManager.java:232)
+	at org.eclipse.ui.internal.contexts.ContextAuthority.updateContext(ContextAuthority.java:767)
+	at org.eclipse.ui.internal.contexts.ContextAuthority.deactivateContext(ContextAuthority.java:362)
+	at org.eclipse.ui.internal.contexts.ContextService.deactivateContext(ContextService.java:140)
+	at org.eclipse.ui.internal.contexts.ContextService.deactivateContexts(ContextService.java:154)
+	at org.eclipse.ui.internal.contexts.SlaveContextService.dispose(SlaveContextService.java:240)
+	at org.eclipse.ui.internal.services.ServiceLocator.dispose(ServiceLocator.java:142)
+	at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1627)
+	at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:722)
+	at org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:698)
+	at org.eclipse.ui.internal.WorkbenchWindow$3.run(WorkbenchWindow.java:814)
+	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
+	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:812)
+	at org.eclipse.jface.window.WindowManager.close(WindowManager.java:109)
+	at org.eclipse.ui.internal.Workbench$16.run(Workbench.java:912)
+	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
+	at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:909)
+	at org.eclipse.ui.internal.Workbench.access$15(Workbench.java:838)
+	at org.eclipse.ui.internal.Workbench$23.run(Workbench.java:1082)
+	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
+	at org.eclipse.ui.internal.Workbench.close(Workbench.java:1080)
+	at org.eclipse.ui.internal.Workbench.restart(Workbench.java:2054)
+	at org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction.restart(OpenWorkspaceAction.java:237)
+	at org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction.access$0(OpenWorkspaceAction.java:229)
+	at org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction$WorkspaceMRUAction.run(OpenWorkspaceAction.java:94)
+	at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
+	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:583)
+	at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:500)
+	at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
+	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
+	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
+	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823)
+	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422)
+	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
+	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
+	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
+	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
+	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
+	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
+	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
+	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
+	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
+	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
+	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
+	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
+	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+	at java.lang.reflect.Method.invoke(Method.java:585)
+	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
+	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
+	at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
+!SESSION 2013-01-13 20:54:10.803 -----------------------------------------------
+eclipse.buildId=unknown
+java.version=1.5.0_12
+java.vendor=Sun Microsystems Inc.
+BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=bg_BG
+Command-line arguments:  -os win32 -ws win32 -arch x86 -data D:\Drugi\Docs\PU\3 kurs\2 trimestur\Kursov Proekt 2\eShop\
+
+!ENTRY org.eclipse.ui.workbench 2 0 2013-01-13 20:56:01.828
+!MESSAGE A handler conflict occurred.  This may disable some commands.
+!SUBENTRY 1 org.eclipse.ui.workbench 2 0 2013-01-13 20:56:01.828
+!MESSAGE Conflict for 'AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action6':
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action6,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScriptForEmail),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@88a970),sourcePriority=16384)
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action6,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScriptForEmail),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@88a970),sourcePriority=16384)
+!SUBENTRY 1 org.eclipse.ui.workbench 2 0 2013-01-13 20:56:01.828
+!MESSAGE Conflict for 'AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action2':
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action2,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScriptForBlogger),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@88a970),sourcePriority=16384)
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action2,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScriptForBlogger),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@88a970),sourcePriority=16384)
+!SUBENTRY 1 org.eclipse.ui.workbench 2 0 2013-01-13 20:56:01.828
+!MESSAGE Conflict for 'AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action4':
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action4,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScriptForWiki),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@88a970),sourcePriority=16384)
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action4,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScriptForWiki),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@88a970),sourcePriority=16384)
+!SUBENTRY 1 org.eclipse.ui.workbench 2 0 2013-01-13 20:56:01.828
+!MESSAGE Conflict for 'AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action5':
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action5,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScript),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@88a970),sourcePriority=16384)
+HandlerActivation(commandId=AUTOGEN:::org.eclipse.eclipsemonkey.emFileContextMenu/org.eclipse.eclipsemonkey.action5,
+	handler=ActionDelegateHandlerProxy(null,org.eclipse.eclipsemonkey.actions.PublishScript),
+	expression=WorkbenchWindowExpression(org.eclipse.ui.internal.WorkbenchWindow@88a970),sourcePriority=16384)
+
+!ENTRY org.eclipse.ui.workbench 4 0 2013-01-13 21:27:29.686
+!MESSAGE Cannot set a null prefix table
+!STACK 0
+java.lang.NullPointerException: Cannot set a null prefix table
+	at org.eclipse.jface.bindings.CachedBindingSet.setPrefixTable(CachedBindingSet.java:346)
+	at org.eclipse.jface.bindings.BindingManager.recomputeBindings(BindingManager.java:1765)
+	at org.eclipse.jface.bindings.BindingManager.contextManagerChanged(BindingManager.java:689)
+	at org.eclipse.core.commands.contexts.ContextManager.fireContextManagerChanged(ContextManager.java:152)
+	at org.eclipse.core.commands.contexts.ContextManager.removeActiveContext(ContextManager.java:232)
+	at org.eclipse.ui.internal.contexts.ContextAuthority.updateContext(ContextAuthority.java:767)
+	at org.eclipse.ui.internal.contexts.ContextAuthority.deactivateContext(ContextAuthority.java:362)
+	at org.eclipse.ui.internal.contexts.ContextService.deactivateContext(ContextService.java:140)
+	at org.eclipse.ui.internal.contexts.ContextService.deactivateContexts(ContextService.java:154)
+	at org.eclipse.ui.internal.contexts.SlaveContextService.dispose(SlaveContextService.java:240)
+	at org.eclipse.ui.internal.services.ServiceLocator.dispose(ServiceLocator.java:142)
+	at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1627)
+	at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:722)
+	at org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:698)
+	at org.eclipse.ui.internal.WorkbenchWindow$3.run(WorkbenchWindow.java:814)
+	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
+	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:812)
+	at org.eclipse.jface.window.WindowManager.close(WindowManager.java:109)
+	at org.eclipse.ui.internal.Workbench$16.run(Workbench.java:912)
+	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
+	at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:909)
+	at org.eclipse.ui.internal.Workbench.access$15(Workbench.java:838)
+	at org.eclipse.ui.internal.Workbench$23.run(Workbench.java:1082)
+	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
+	at org.eclipse.ui.internal.Workbench.close(Workbench.java:1080)
+	at org.eclipse.ui.internal.Workbench.close(Workbench.java:1052)
+	at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:719)
+	at org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:698)
+	at org.eclipse.ui.internal.WorkbenchWindow$3.run(WorkbenchWindow.java:814)
+	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
+	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:812)
+	at org.eclipse.jface.window.Window.handleShellCloseEvent(Window.java:741)
+	at org.eclipse.jface.window.Window$3.shellClosed(Window.java:687)
+	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:92)
+	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
+	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
+	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027)
+	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1012)
+	at org.eclipse.swt.widgets.Decorations.closeWidget(Decorations.java:307)
+	at org.eclipse.swt.widgets.Decorations.WM_CLOSE(Decorations.java:1643)
+	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3789)
+	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:337)
+	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1576)
+	at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:1937)
+	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4528)
+	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
+	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2366)
+	at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:477)
+	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3877)
+	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:337)
+	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1576)
+	at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:1937)
+	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4528)
+	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
+	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2366)
+	at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:477)
+	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3877)
+	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:337)
+	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1576)
+	at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:1937)
+	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4528)
+	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
+	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2371)
+	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3420)
+	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
+	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
+	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
+	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
+	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
+	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
+	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
+	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
+	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
+	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
+	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
+	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
+	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+	at java.lang.reflect.Method.invoke(Method.java:585)
+	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
+	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
+	at org.eclipse.equinox.launcher.Main.run(Main.java:1236)

programming_language: Java
filename: monitor-log.xml
change_type: ModificationType.MODIFY
diff: @@ -56549,3 +56549,10013 @@
 	<delta>closed</delta>
 	<interestContribution>1.0</interestContribution>
 </interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:07:47.229 EET</date>
+	<endDate>2013-01-13 18:07:47.229 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:07:54.106 EET</date>
+	<endDate>2013-01-13 18:07:54.106 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:10:47.290 EET</date>
+	<endDate>2013-01-13 18:10:47.290 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.toggleOverwrite</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:10:49.270 EET</date>
+	<endDate>2013-01-13 18:10:49.270 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.toggleOverwrite</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:10:49.961 EET</date>
+	<endDate>2013-01-13 18:10:49.961 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:13:24.529 EET</date>
+	<endDate>2013-01-13 18:13:24.529 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:15:14.497 EET</date>
+	<endDate>2013-01-13 18:15:14.497 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:16:17.61 EET</date>
+	<endDate>2013-01-13 18:16:17.61 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:18:14.652 EET</date>
+	<endDate>2013-01-13 18:18:14.652 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:21:35.447 EET</date>
+	<endDate>2013-01-13 18:21:35.447 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:21:50.122 EET</date>
+	<endDate>2013-01-13 18:21:50.122 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:22:02.282 EET</date>
+	<endDate>2013-01-13 18:22:02.282 EET</endDate>
+	<originId>org.eclipse.ui.edit.copy</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:22:08.3 EET</date>
+	<endDate>2013-01-13 18:22:08.3 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:22:22.742 EET</date>
+	<endDate>2013-01-13 18:22:22.742 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:22:33.683 EET</date>
+	<endDate>2013-01-13 18:22:33.683 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:22:35.651 EET</date>
+	<endDate>2013-01-13 18:22:35.651 EET</endDate>
+	<originId>org.eclipse.ui.edit.undo</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:22:51.795 EET</date>
+	<endDate>2013-01-13 18:22:51.795 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:24:08.335 EET</date>
+	<endDate>2013-01-13 18:24:08.335 EET</endDate>
+	<originId>org.eclipse.ui.edit.copy</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:24:12.891 EET</date>
+	<endDate>2013-01-13 18:24:12.891 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:25:45.645 EET</date>
+	<endDate>2013-01-13 18:25:45.645 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:25:46.847 EET</date>
+	<endDate>2013-01-13 18:25:46.847 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:26:14.282 EET</date>
+	<endDate>2013-01-13 18:26:14.282 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:29:35.655 EET</date>
+	<endDate>2013-01-13 18:29:35.655 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:32:48.401 EET</date>
+	<endDate>2013-01-13 18:32:48.401 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:32:50.589 EET</date>
+	<endDate>2013-01-13 18:32:50.589 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:32:50.834 EET</date>
+	<endDate>2013-01-13 18:32:50.834 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:32:51.95 EET</date>
+	<endDate>2013-01-13 18:32:51.95 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:32:51.404 EET</date>
+	<endDate>2013-01-13 18:32:51.404 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:32:52.699 EET</date>
+	<endDate>2013-01-13 18:32:52.699 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:33:36.910 EET</date>
+	<endDate>2013-01-13 18:33:36.910 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:36:01.422 EET</date>
+	<endDate>2013-01-13 18:36:01.422 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:36:07.575 EET</date>
+	<endDate>2013-01-13 18:36:07.575 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:36:12.535 EET</date>
+	<endDate>2013-01-13 18:36:12.535 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:36:18.977 EET</date>
+	<endDate>2013-01-13 18:36:18.977 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:36:20.527 EET</date>
+	<endDate>2013-01-13 18:36:20.527 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:37:19.824 EET</date>
+	<endDate>2013-01-13 18:37:19.824 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:39:22.718 EET</date>
+	<endDate>2013-01-13 18:39:22.718 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:39:41.818 EET</date>
+	<endDate>2013-01-13 18:39:41.818 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:40:13.554 EET</date>
+	<endDate>2013-01-13 18:40:13.554 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:43:30.252 EET</date>
+	<endDate>2013-01-13 18:43:30.252 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:44:03.236 EET</date>
+	<endDate>2013-01-13 18:44:03.236 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:45:15.743 EET</date>
+	<endDate>2013-01-13 18:45:15.743 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.contentAssist.proposals</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:45:55.483 EET</date>
+	<endDate>2013-01-13 18:45:55.483 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:47:02.698 EET</date>
+	<endDate>2013-01-13 18:47:02.698 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:47:02.905 EET</date>
+	<endDate>2013-01-13 18:47:02.905 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:47:03.137 EET</date>
+	<endDate>2013-01-13 18:47:03.137 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:47:03.382 EET</date>
+	<endDate>2013-01-13 18:47:03.382 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:47:03.583 EET</date>
+	<endDate>2013-01-13 18:47:03.583 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:48:17.452 EET</date>
+	<endDate>2013-01-13 18:48:17.452 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:48:17.733 EET</date>
+	<endDate>2013-01-13 18:48:17.733 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:48:20.68 EET</date>
+	<endDate>2013-01-13 18:48:20.68 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:48:29.198 EET</date>
+	<endDate>2013-01-13 18:48:29.198 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:48:38.659 EET</date>
+	<endDate>2013-01-13 18:48:38.659 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:48:40.987 EET</date>
+	<endDate>2013-01-13 18:48:40.987 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:48:41.883 EET</date>
+	<endDate>2013-01-13 18:48:41.883 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:48:41.954 EET</date>
+	<endDate>2013-01-13 18:48:41.954 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:48:42.274 EET</date>
+	<endDate>2013-01-13 18:48:42.274 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:48:42.527 EET</date>
+	<endDate>2013-01-13 18:48:42.527 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:48:42.880 EET</date>
+	<endDate>2013-01-13 18:48:42.880 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:48:50.86 EET</date>
+	<endDate>2013-01-13 18:48:50.86 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.contentAssist.proposals</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:50:15.243 EET</date>
+	<endDate>2013-01-13 18:50:15.243 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:50:38.86 EET</date>
+	<endDate>2013-01-13 18:50:38.86 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:50:55.61 EET</date>
+	<endDate>2013-01-13 18:50:55.61 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:50:57.268 EET</date>
+	<endDate>2013-01-13 18:50:57.268 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:53:16.209 EET</date>
+	<endDate>2013-01-13 18:53:16.209 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:53:17.803 EET</date>
+	<endDate>2013-01-13 18:53:17.803 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.contentAssist.proposals</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:55:18.811 EET</date>
+	<endDate>2013-01-13 18:55:18.811 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.toggleOverwrite</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:55:19.126 EET</date>
+	<endDate>2013-01-13 18:55:19.126 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.toggleOverwrite</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:55:25.353 EET</date>
+	<endDate>2013-01-13 18:55:25.353 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:56:07.727 EET</date>
+	<endDate>2013-01-13 18:56:07.727 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:56:07.893 EET</date>
+	<endDate>2013-01-13 18:56:07.893 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:56:08.67 EET</date>
+	<endDate>2013-01-13 18:56:08.67 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:56:10.137 EET</date>
+	<endDate>2013-01-13 18:56:10.137 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:57:13.630 EET</date>
+	<endDate>2013-01-13 18:57:13.630 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:57:21.636 EET</date>
+	<endDate>2013-01-13 18:57:21.636 EET</endDate>
+	<originId>org.eclipse.datatools.sqltools.result.removeAllInstances</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:57:22.682 EET</date>
+	<endDate>2013-01-13 18:57:22.682 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:57:23.398 EET</date>
+	<endDate>2013-01-13 18:57:23.398 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:57:23.659 EET</date>
+	<endDate>2013-01-13 18:57:23.659 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:57:23.898 EET</date>
+	<endDate>2013-01-13 18:57:23.898 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:57:24.100 EET</date>
+	<endDate>2013-01-13 18:57:24.100 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:57:24.276 EET</date>
+	<endDate>2013-01-13 18:57:24.276 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:58:30.409 EET</date>
+	<endDate>2013-01-13 18:58:30.409 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:58:40.190 EET</date>
+	<endDate>2013-01-13 18:58:40.190 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 18:58:55.505 EET</date>
+	<endDate>2013-01-13 18:58:55.505 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 18:59:27.179 EET</date>
+	<endDate>2013-01-13 18:59:27.179 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 18:59:27.202 EET</date>
+	<endDate>2013-01-13 18:59:27.202 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 18:59:27.268 EET</date>
+	<endDate>2013-01-13 18:59:27.268 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 18:59:27.268 EET</date>
+	<endDate>2013-01-13 18:59:27.268 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:59:27.646 EET</date>
+	<endDate>2013-01-13 18:59:27.646 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 18:59:27.700 EET</date>
+	<endDate>2013-01-13 18:59:27.700 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 18:59:49.955 EET</date>
+	<endDate>2013-01-13 18:59:49.955 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 18:59:51.416 EET</date>
+	<endDate>2013-01-13 18:59:51.416 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:01:28.121 EET</date>
+	<endDate>2013-01-13 19:01:28.121 EET</endDate>
+	<originId>org.eclipse.ui.edit.copy</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:01:30.229 EET</date>
+	<endDate>2013-01-13 19:01:30.229 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:01:32.177 EET</date>
+	<endDate>2013-01-13 19:01:32.177 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:01:46.912 EET</date>
+	<endDate>2013-01-13 19:01:46.912 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:01:58.691 EET</date>
+	<endDate>2013-01-13 19:01:58.691 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:02:00.497 EET</date>
+	<endDate>2013-01-13 19:02:00.497 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:02:21.548 EET</date>
+	<endDate>2013-01-13 19:02:21.548 EET</endDate>
+	<originId>org.eclipse.ui.edit.cut</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:02:24.47 EET</date>
+	<endDate>2013-01-13 19:02:24.47 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:02:24.253 EET</date>
+	<endDate>2013-01-13 19:02:24.253 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:02:24.462 EET</date>
+	<endDate>2013-01-13 19:02:24.462 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:02:24.771 EET</date>
+	<endDate>2013-01-13 19:02:24.771 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:02:31.749 EET</date>
+	<endDate>2013-01-13 19:02:31.749 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:04:15.734 EET</date>
+	<endDate>2013-01-13 19:04:15.734 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:04:16.658 EET</date>
+	<endDate>2013-01-13 19:04:16.658 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:04:18.189 EET</date>
+	<endDate>2013-01-13 19:04:18.189 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:04:21.492 EET</date>
+	<endDate>2013-01-13 19:04:21.492 EET</endDate>
+	<originId>org.eclipse.ui.internal.ViewStackTrimToolBar$1</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:04:21.579 EET</date>
+	<endDate>2013-01-13 19:04:21.579 EET</endDate>
+	<originId>org.eclipse.ui.views.ProblemView</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: fastViewRemove</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:04:21.579 EET</date>
+	<endDate>2013-01-13 19:04:21.579 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: fastViewRemove</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:04:21.607 EET</date>
+	<endDate>2013-01-13 19:04:21.607 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavadocView</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: fastViewRemove</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:04:21.608 EET</date>
+	<endDate>2013-01-13 19:04:21.608 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: fastViewRemove</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:04:21.615 EET</date>
+	<endDate>2013-01-13 19:04:21.615 EET</endDate>
+	<originId>org.eclipse.jdt.ui.SourceView</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: fastViewRemove</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:04:21.616 EET</date>
+	<endDate>2013-01-13 19:04:21.616 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: fastViewRemove</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:04:21.623 EET</date>
+	<endDate>2013-01-13 19:04:21.623 EET</endDate>
+	<originId>org.eclipse.ui.console.ConsoleView</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: fastViewRemove</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:04:21.623 EET</date>
+	<endDate>2013-01-13 19:04:21.623 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: fastViewRemove</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:04:51.297 EET</date>
+	<endDate>2013-01-13 19:04:51.297 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:05:07.803 EET</date>
+	<endDate>2013-01-13 19:05:07.803 EET</endDate>
+	<originId>org.eclipse.ui.edit.cut</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:05:19.351 EET</date>
+	<endDate>2013-01-13 19:05:19.351 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:05:21.944 EET</date>
+	<endDate>2013-01-13 19:05:21.944 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.toggleOverwrite</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:05:25.845 EET</date>
+	<endDate>2013-01-13 19:05:25.845 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.toggleOverwrite</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:05:26.263 EET</date>
+	<endDate>2013-01-13 19:05:26.263 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:05:26.999 EET</date>
+	<endDate>2013-01-13 19:05:26.999 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:05:33.390 EET</date>
+	<endDate>2013-01-13 19:05:33.390 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:05:36.461 EET</date>
+	<endDate>2013-01-13 19:05:36.461 EET</endDate>
+	<originId>org.eclipse.debug.internal.ui.actions.RunDropDownAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:06:31.237 EET</date>
+	<endDate>2013-01-13 19:06:31.237 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:07:27.637 EET</date>
+	<endDate>2013-01-13 19:07:27.637 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:07:33.147 EET</date>
+	<endDate>2013-01-13 19:07:33.147 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:07:33.736 EET</date>
+	<endDate>2013-01-13 19:07:33.736 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:07:34.588 EET</date>
+	<endDate>2013-01-13 19:07:34.588 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:07:34.911 EET</date>
+	<endDate>2013-01-13 19:07:34.911 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:07:35.223 EET</date>
+	<endDate>2013-01-13 19:07:35.223 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:07:37.699 EET</date>
+	<endDate>2013-01-13 19:07:37.699 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:07:37.855 EET</date>
+	<endDate>2013-01-13 19:07:37.855 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:08:05.203 EET</date>
+	<endDate>2013-01-13 19:08:05.203 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:08:19.498 EET</date>
+	<endDate>2013-01-13 19:08:19.498 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:08:19.589 EET</date>
+	<endDate>2013-01-13 19:08:19.589 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:08:20.659 EET</date>
+	<endDate>2013-01-13 19:08:20.659 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:08:23.797 EET</date>
+	<endDate>2013-01-13 19:08:23.797 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:08:25.448 EET</date>
+	<endDate>2013-01-13 19:08:25.448 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:08:25.462 EET</date>
+	<endDate>2013-01-13 19:08:25.462 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:08:25.493 EET</date>
+	<endDate>2013-01-13 19:08:25.493 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:08:25.493 EET</date>
+	<endDate>2013-01-13 19:08:25.493 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:08:48.481 EET</date>
+	<endDate>2013-01-13 19:08:48.481 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:08:49.414 EET</date>
+	<endDate>2013-01-13 19:08:49.414 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:09:17.492 EET</date>
+	<endDate>2013-01-13 19:09:17.492 EET</endDate>
+	<originId>org.eclipse.ui.edit.copy</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:09:24.288 EET</date>
+	<endDate>2013-01-13 19:09:24.288 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:09:25.151 EET</date>
+	<endDate>2013-01-13 19:09:25.151 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:09:25.483 EET</date>
+	<endDate>2013-01-13 19:09:25.483 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:09:25.816 EET</date>
+	<endDate>2013-01-13 19:09:25.816 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:09:27.600 EET</date>
+	<endDate>2013-01-13 19:09:27.600 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:09:51.185 EET</date>
+	<endDate>2013-01-13 19:09:51.185 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:09:51.635 EET</date>
+	<endDate>2013-01-13 19:09:51.635 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:09:57.568 EET</date>
+	<endDate>2013-01-13 19:09:57.568 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:10:04.728 EET</date>
+	<endDate>2013-01-13 19:10:04.728 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:10:04.729 EET</date>
+	<endDate>2013-01-13 19:10:04.729 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:10:08.215 EET</date>
+	<endDate>2013-01-13 19:10:08.215 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:10:13.452 EET</date>
+	<endDate>2013-01-13 19:10:13.452 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:10:15.434 EET</date>
+	<endDate>2013-01-13 19:10:15.434 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:10:16.406 EET</date>
+	<endDate>2013-01-13 19:10:16.406 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:10:26.326 EET</date>
+	<endDate>2013-01-13 19:10:26.326 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:10:26.401 EET</date>
+	<endDate>2013-01-13 19:10:26.401 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:10:27.400 EET</date>
+	<endDate>2013-01-13 19:10:27.400 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:10:29.801 EET</date>
+	<endDate>2013-01-13 19:10:29.801 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:10:30.804 EET</date>
+	<endDate>2013-01-13 19:10:30.804 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:10:30.815 EET</date>
+	<endDate>2013-01-13 19:10:30.815 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:10:30.846 EET</date>
+	<endDate>2013-01-13 19:10:30.846 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:10:30.846 EET</date>
+	<endDate>2013-01-13 19:10:30.846 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:10:58.853 EET</date>
+	<endDate>2013-01-13 19:10:58.853 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:10:59.442 EET</date>
+	<endDate>2013-01-13 19:10:59.442 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:10:59.753 EET</date>
+	<endDate>2013-01-13 19:10:59.753 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:11:03.576 EET</date>
+	<endDate>2013-01-13 19:11:03.576 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:11:08.389 EET</date>
+	<endDate>2013-01-13 19:11:08.389 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:11:45.179 EET</date>
+	<endDate>2013-01-13 19:11:45.179 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:11:46.256 EET</date>
+	<endDate>2013-01-13 19:11:46.256 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:11:46.282 EET</date>
+	<endDate>2013-01-13 19:11:46.282 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:11:46.283 EET</date>
+	<endDate>2013-01-13 19:11:46.283 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:11:55.729 EET</date>
+	<endDate>2013-01-13 19:11:55.729 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:11:56.383 EET</date>
+	<endDate>2013-01-13 19:11:56.383 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:11:56.670 EET</date>
+	<endDate>2013-01-13 19:11:56.670 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:11:59.375 EET</date>
+	<endDate>2013-01-13 19:11:59.375 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:12:03.151 EET</date>
+	<endDate>2013-01-13 19:12:03.151 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:12:03.151 EET</date>
+	<endDate>2013-01-13 19:12:03.151 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:13.122 EET</date>
+	<endDate>2013-01-13 19:12:13.122 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:13.360 EET</date>
+	<endDate>2013-01-13 19:12:13.360 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:15.714 EET</date>
+	<endDate>2013-01-13 19:12:15.714 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:25.205 EET</date>
+	<endDate>2013-01-13 19:12:25.205 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:25.999 EET</date>
+	<endDate>2013-01-13 19:12:25.999 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:26.881 EET</date>
+	<endDate>2013-01-13 19:12:26.881 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:27.166 EET</date>
+	<endDate>2013-01-13 19:12:27.166 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:28.290 EET</date>
+	<endDate>2013-01-13 19:12:28.290 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:12:30.179 EET</date>
+	<endDate>2013-01-13 19:12:30.179 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:34.97 EET</date>
+	<endDate>2013-01-13 19:12:34.97 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:34.973 EET</date>
+	<endDate>2013-01-13 19:12:34.973 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:35.606 EET</date>
+	<endDate>2013-01-13 19:12:35.606 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:37.620 EET</date>
+	<endDate>2013-01-13 19:12:37.620 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:12:39.682 EET</date>
+	<endDate>2013-01-13 19:12:39.682 EET</endDate>
+	<originId>org.eclipse.jdt.ui.CompilationUnitEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:12:39.682 EET</date>
+	<endDate>2013-01-13 19:12:39.682 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:40.881 EET</date>
+	<endDate>2013-01-13 19:12:40.881 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:41.530 EET</date>
+	<endDate>2013-01-13 19:12:41.530 EET</endDate>
+	<originId>org.eclipse.datatools.sqltools.result.removeAllInstances</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:42.248 EET</date>
+	<endDate>2013-01-13 19:12:42.248 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:43.78 EET</date>
+	<endDate>2013-01-13 19:12:43.78 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:43.447 EET</date>
+	<endDate>2013-01-13 19:12:43.447 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:44.182 EET</date>
+	<endDate>2013-01-13 19:12:44.182 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:12:46.275 EET</date>
+	<endDate>2013-01-13 19:12:46.275 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:48.910 EET</date>
+	<endDate>2013-01-13 19:12:48.910 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:49.751 EET</date>
+	<endDate>2013-01-13 19:12:49.751 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:50.43 EET</date>
+	<endDate>2013-01-13 19:12:50.43 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:52.557 EET</date>
+	<endDate>2013-01-13 19:12:52.557 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:55.943 EET</date>
+	<endDate>2013-01-13 19:12:55.943 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:56.374 EET</date>
+	<endDate>2013-01-13 19:12:56.374 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:57.142 EET</date>
+	<endDate>2013-01-13 19:12:57.142 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:57.366 EET</date>
+	<endDate>2013-01-13 19:12:57.366 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:12:58.21 EET</date>
+	<endDate>2013-01-13 19:12:58.21 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:01.187 EET</date>
+	<endDate>2013-01-13 19:13:01.187 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:01.814 EET</date>
+	<endDate>2013-01-13 19:13:01.814 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:04.341 EET</date>
+	<endDate>2013-01-13 19:13:04.341 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:05.234 EET</date>
+	<endDate>2013-01-13 19:13:05.234 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:07.697 EET</date>
+	<endDate>2013-01-13 19:13:07.697 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:08.991 EET</date>
+	<endDate>2013-01-13 19:13:08.991 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:11.617 EET</date>
+	<endDate>2013-01-13 19:13:11.617 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:12.55 EET</date>
+	<endDate>2013-01-13 19:13:12.55 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:13.42 EET</date>
+	<endDate>2013-01-13 19:13:13.42 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:17.259 EET</date>
+	<endDate>2013-01-13 19:13:17.259 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:17.827 EET</date>
+	<endDate>2013-01-13 19:13:17.827 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:18.201 EET</date>
+	<endDate>2013-01-13 19:13:18.201 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:19.241 EET</date>
+	<endDate>2013-01-13 19:13:19.241 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:13:22.446 EET</date>
+	<endDate>2013-01-13 19:13:22.446 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:13:22.446 EET</date>
+	<endDate>2013-01-13 19:13:22.446 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:28.973 EET</date>
+	<endDate>2013-01-13 19:13:28.973 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:29.548 EET</date>
+	<endDate>2013-01-13 19:13:29.548 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:36.268 EET</date>
+	<endDate>2013-01-13 19:13:36.268 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:36.869 EET</date>
+	<endDate>2013-01-13 19:13:36.869 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:38.757 EET</date>
+	<endDate>2013-01-13 19:13:38.757 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:43.76 EET</date>
+	<endDate>2013-01-13 19:13:43.76 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:43.400 EET</date>
+	<endDate>2013-01-13 19:13:43.400 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:44.26 EET</date>
+	<endDate>2013-01-13 19:13:44.26 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:44.249 EET</date>
+	<endDate>2013-01-13 19:13:44.249 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:45.238 EET</date>
+	<endDate>2013-01-13 19:13:45.238 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:47.848 EET</date>
+	<endDate>2013-01-13 19:13:47.848 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:48.208 EET</date>
+	<endDate>2013-01-13 19:13:48.208 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:49.102 EET</date>
+	<endDate>2013-01-13 19:13:49.102 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:49.346 EET</date>
+	<endDate>2013-01-13 19:13:49.346 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:13:50.30 EET</date>
+	<endDate>2013-01-13 19:13:50.30 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:14:14.140 EET</date>
+	<endDate>2013-01-13 19:14:14.140 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:14:18.572 EET</date>
+	<endDate>2013-01-13 19:14:18.572 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:14:19.899 EET</date>
+	<endDate>2013-01-13 19:14:19.899 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:14:19.977 EET</date>
+	<endDate>2013-01-13 19:14:19.977 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:14:21.196 EET</date>
+	<endDate>2013-01-13 19:14:21.196 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:14:22.754 EET</date>
+	<endDate>2013-01-13 19:14:22.754 EET</endDate>
+	<originId>org.eclipse.jdt.ui.CompilationUnitEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:14:22.821 EET</date>
+	<endDate>2013-01-13 19:14:22.821 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:14:24.199 EET</date>
+	<endDate>2013-01-13 19:14:24.199 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:14:25.674 EET</date>
+	<endDate>2013-01-13 19:14:25.674 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:14:26.669 EET</date>
+	<endDate>2013-01-13 19:14:26.669 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:14:27.674 EET</date>
+	<endDate>2013-01-13 19:14:27.674 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:14:28.654 EET</date>
+	<endDate>2013-01-13 19:14:28.654 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:15:51.768 EET</date>
+	<endDate>2013-01-13 19:15:51.768 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:15:54.43 EET</date>
+	<endDate>2013-01-13 19:15:54.43 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:15:54.44 EET</date>
+	<endDate>2013-01-13 19:15:54.44 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:16:06.927 EET</date>
+	<endDate>2013-01-13 19:16:06.927 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:16:09.766 EET</date>
+	<endDate>2013-01-13 19:16:09.766 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:16:10.154 EET</date>
+	<endDate>2013-01-13 19:16:10.154 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:16:22.696 EET</date>
+	<endDate>2013-01-13 19:16:22.696 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:16:23.547 EET</date>
+	<endDate>2013-01-13 19:16:23.547 EET</endDate>
+	<originId>org.eclipse.ui.edit.copy</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:16:24.525 EET</date>
+	<endDate>2013-01-13 19:16:24.525 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:16:32.620 EET</date>
+	<endDate>2013-01-13 19:16:32.620 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:16:40.624 EET</date>
+	<endDate>2013-01-13 19:16:40.624 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:16:43.808 EET</date>
+	<endDate>2013-01-13 19:16:43.808 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:16:43.808 EET</date>
+	<endDate>2013-01-13 19:16:43.808 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:16:48.143 EET</date>
+	<endDate>2013-01-13 19:16:48.143 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:16:54.379 EET</date>
+	<endDate>2013-01-13 19:16:54.379 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:16:58.3 EET</date>
+	<endDate>2013-01-13 19:16:58.3 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:16:58.4 EET</date>
+	<endDate>2013-01-13 19:16:58.4 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:17:03.838 EET</date>
+	<endDate>2013-01-13 19:17:03.838 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:17:04.812 EET</date>
+	<endDate>2013-01-13 19:17:04.812 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:17:07.941 EET</date>
+	<endDate>2013-01-13 19:17:07.941 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:17:25.909 EET</date>
+	<endDate>2013-01-13 19:17:25.909 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:17:29.977 EET</date>
+	<endDate>2013-01-13 19:17:29.977 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:18:03.263 EET</date>
+	<endDate>2013-01-13 19:18:03.263 EET</endDate>
+	<originId>org.eclipse.ui.edit.copy</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:18:06.232 EET</date>
+	<endDate>2013-01-13 19:18:06.232 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:18:45.708 EET</date>
+	<endDate>2013-01-13 19:18:45.708 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:18:57.102 EET</date>
+	<endDate>2013-01-13 19:18:57.102 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:18:57.946 EET</date>
+	<endDate>2013-01-13 19:18:57.946 EET</endDate>
+	<originId>org.eclipse.ui.edit.copy</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:19:12.295 EET</date>
+	<endDate>2013-01-13 19:19:12.295 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:19:22.996 EET</date>
+	<endDate>2013-01-13 19:19:22.996 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:19:33.427 EET</date>
+	<endDate>2013-01-13 19:19:33.427 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:19:44.665 EET</date>
+	<endDate>2013-01-13 19:19:44.665 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:19:46.731 EET</date>
+	<endDate>2013-01-13 19:19:46.731 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:20:19.300 EET</date>
+	<endDate>2013-01-13 19:20:19.300 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:20:25.415 EET</date>
+	<endDate>2013-01-13 19:20:25.415 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.contentAssist.proposals</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:20:38.111 EET</date>
+	<endDate>2013-01-13 19:20:38.111 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:20:40.443 EET</date>
+	<endDate>2013-01-13 19:20:40.443 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:20:42.55 EET</date>
+	<endDate>2013-01-13 19:20:42.55 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:20:57.454 EET</date>
+	<endDate>2013-01-13 19:20:57.454 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:20:57.621 EET</date>
+	<endDate>2013-01-13 19:20:57.621 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:20:58.13 EET</date>
+	<endDate>2013-01-13 19:20:58.13 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:20:58.351 EET</date>
+	<endDate>2013-01-13 19:20:58.351 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:20:59.195 EET</date>
+	<endDate>2013-01-13 19:20:59.195 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:21:17.260 EET</date>
+	<endDate>2013-01-13 19:21:17.260 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:21:28.937 EET</date>
+	<endDate>2013-01-13 19:21:28.937 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:21:30.516 EET</date>
+	<endDate>2013-01-13 19:21:30.516 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:21:30.595 EET</date>
+	<endDate>2013-01-13 19:21:30.595 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:21:31.640 EET</date>
+	<endDate>2013-01-13 19:21:31.640 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:21:33.63 EET</date>
+	<endDate>2013-01-13 19:21:33.63 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:21:38.94 EET</date>
+	<endDate>2013-01-13 19:21:38.94 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:21:38.174 EET</date>
+	<endDate>2013-01-13 19:21:38.174 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:21:39.183 EET</date>
+	<endDate>2013-01-13 19:21:39.183 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:21:41.797 EET</date>
+	<endDate>2013-01-13 19:21:41.797 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:22:15.40 EET</date>
+	<endDate>2013-01-13 19:22:15.40 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:50:46.775 EET</date>
+	<endDate>2013-01-13 19:50:46.775 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:14.950 EET</date>
+	<endDate>2013-01-13 19:51:14.950 EET</endDate>
+	<originId>org.eclipse.ui.edit.copy</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:16.662 EET</date>
+	<endDate>2013-01-13 19:51:16.662 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:17.840 EET</date>
+	<endDate>2013-01-13 19:51:17.840 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:32.2 EET</date>
+	<endDate>2013-01-13 19:51:32.2 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:45.118 EET</date>
+	<endDate>2013-01-13 19:51:45.118 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:45.615 EET</date>
+	<endDate>2013-01-13 19:51:45.615 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:45.647 EET</date>
+	<endDate>2013-01-13 19:51:45.647 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:45.678 EET</date>
+	<endDate>2013-01-13 19:51:45.678 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:45.710 EET</date>
+	<endDate>2013-01-13 19:51:45.710 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:45.742 EET</date>
+	<endDate>2013-01-13 19:51:45.742 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:45.774 EET</date>
+	<endDate>2013-01-13 19:51:45.774 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:45.806 EET</date>
+	<endDate>2013-01-13 19:51:45.806 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:45.841 EET</date>
+	<endDate>2013-01-13 19:51:45.841 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:45.870 EET</date>
+	<endDate>2013-01-13 19:51:45.870 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:45.902 EET</date>
+	<endDate>2013-01-13 19:51:45.902 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:45.934 EET</date>
+	<endDate>2013-01-13 19:51:45.934 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:45.966 EET</date>
+	<endDate>2013-01-13 19:51:45.966 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:45.998 EET</date>
+	<endDate>2013-01-13 19:51:45.998 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.30 EET</date>
+	<endDate>2013-01-13 19:51:46.30 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.62 EET</date>
+	<endDate>2013-01-13 19:51:46.62 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.94 EET</date>
+	<endDate>2013-01-13 19:51:46.94 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.125 EET</date>
+	<endDate>2013-01-13 19:51:46.125 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.158 EET</date>
+	<endDate>2013-01-13 19:51:46.158 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.190 EET</date>
+	<endDate>2013-01-13 19:51:46.190 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.222 EET</date>
+	<endDate>2013-01-13 19:51:46.222 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.254 EET</date>
+	<endDate>2013-01-13 19:51:46.254 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.285 EET</date>
+	<endDate>2013-01-13 19:51:46.285 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.317 EET</date>
+	<endDate>2013-01-13 19:51:46.317 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.350 EET</date>
+	<endDate>2013-01-13 19:51:46.350 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.382 EET</date>
+	<endDate>2013-01-13 19:51:46.382 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.413 EET</date>
+	<endDate>2013-01-13 19:51:46.413 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.446 EET</date>
+	<endDate>2013-01-13 19:51:46.446 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.477 EET</date>
+	<endDate>2013-01-13 19:51:46.477 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.509 EET</date>
+	<endDate>2013-01-13 19:51:46.509 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.541 EET</date>
+	<endDate>2013-01-13 19:51:46.541 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.573 EET</date>
+	<endDate>2013-01-13 19:51:46.573 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.605 EET</date>
+	<endDate>2013-01-13 19:51:46.605 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.784 EET</date>
+	<endDate>2013-01-13 19:51:46.784 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:46.966 EET</date>
+	<endDate>2013-01-13 19:51:46.966 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:47.139 EET</date>
+	<endDate>2013-01-13 19:51:47.139 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:47.285 EET</date>
+	<endDate>2013-01-13 19:51:47.285 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:47.523 EET</date>
+	<endDate>2013-01-13 19:51:47.523 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:47.829 EET</date>
+	<endDate>2013-01-13 19:51:47.829 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:48.484 EET</date>
+	<endDate>2013-01-13 19:51:48.484 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:51:53.859 EET</date>
+	<endDate>2013-01-13 19:51:53.859 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:52:00.891 EET</date>
+	<endDate>2013-01-13 19:52:00.891 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:52:01.752 EET</date>
+	<endDate>2013-01-13 19:52:01.752 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:52:32.849 EET</date>
+	<endDate>2013-01-13 19:52:32.849 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:52:38.529 EET</date>
+	<endDate>2013-01-13 19:52:38.529 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:52:54.709 EET</date>
+	<endDate>2013-01-13 19:52:54.709 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:53:05.630 EET</date>
+	<endDate>2013-01-13 19:53:05.630 EET</endDate>
+	<originId>org.eclipse.ui.edit.copy</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:53:07.31 EET</date>
+	<endDate>2013-01-13 19:53:07.31 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:53:12.671 EET</date>
+	<endDate>2013-01-13 19:53:12.671 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:53:20.749 EET</date>
+	<endDate>2013-01-13 19:53:20.749 EET</endDate>
+	<originId>org.eclipse.ui.edit.copy</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:53:23.754 EET</date>
+	<endDate>2013-01-13 19:53:23.754 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:54:05.854 EET</date>
+	<endDate>2013-01-13 19:54:05.854 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:54:08.769 EET</date>
+	<endDate>2013-01-13 19:54:08.769 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:54:09.856 EET</date>
+	<endDate>2013-01-13 19:54:09.856 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:54:10.287 EET</date>
+	<endDate>2013-01-13 19:54:10.287 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:54:10.488 EET</date>
+	<endDate>2013-01-13 19:54:10.488 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:54:10.680 EET</date>
+	<endDate>2013-01-13 19:54:10.680 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:54:10.878 EET</date>
+	<endDate>2013-01-13 19:54:10.878 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:54:11.324 EET</date>
+	<endDate>2013-01-13 19:54:11.324 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:54:11.672 EET</date>
+	<endDate>2013-01-13 19:54:11.672 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:54:12.62 EET</date>
+	<endDate>2013-01-13 19:54:12.62 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:54:13.542 EET</date>
+	<endDate>2013-01-13 19:54:13.542 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:54:22.35 EET</date>
+	<endDate>2013-01-13 19:54:22.35 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:54:41.90 EET</date>
+	<endDate>2013-01-13 19:54:41.90 EET</endDate>
+	<originId>org.eclipse.debug.internal.ui.actions.RunDropDownAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:54:44.580 EET</date>
+	<endDate>2013-01-13 19:54:44.580 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:54:45.631 EET</date>
+	<endDate>2013-01-13 19:54:45.631 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:54:48.445 EET</date>
+	<endDate>2013-01-13 19:54:48.445 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:54:49.913 EET</date>
+	<endDate>2013-01-13 19:54:49.913 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:54:50.925 EET</date>
+	<endDate>2013-01-13 19:54:50.925 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:54:50.951 EET</date>
+	<endDate>2013-01-13 19:54:50.951 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:54:50.952 EET</date>
+	<endDate>2013-01-13 19:54:50.952 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:54:53.486 EET</date>
+	<endDate>2013-01-13 19:54:53.486 EET</endDate>
+	<originId>org.eclipse.debug.internal.ui.actions.RunDropDownAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:56:45.271 EET</date>
+	<endDate>2013-01-13 19:56:45.271 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:56:45.304 EET</date>
+	<endDate>2013-01-13 19:56:45.304 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:56:52.289 EET</date>
+	<endDate>2013-01-13 19:56:52.289 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:56:59.540 EET</date>
+	<endDate>2013-01-13 19:56:59.540 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:56:59.798 EET</date>
+	<endDate>2013-01-13 19:56:59.798 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:56:59.817 EET</date>
+	<endDate>2013-01-13 19:56:59.817 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:57:08.256 EET</date>
+	<endDate>2013-01-13 19:57:08.256 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:57:27.342 EET</date>
+	<endDate>2013-01-13 19:57:27.342 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:57:33.381 EET</date>
+	<endDate>2013-01-13 19:57:33.381 EET</endDate>
+	<originId>org.eclipse.debug.internal.ui.actions.RunDropDownAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:57:50.985 EET</date>
+	<endDate>2013-01-13 19:57:50.985 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:57:54.65 EET</date>
+	<endDate>2013-01-13 19:57:54.65 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:58:03.532 EET</date>
+	<endDate>2013-01-13 19:58:03.532 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:58:08.734 EET</date>
+	<endDate>2013-01-13 19:58:08.734 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.ToggleBreakpoint</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:58:13.419 EET</date>
+	<endDate>2013-01-13 19:58:13.419 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.DebugLast</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:58:15.271 EET</date>
+	<endDate>2013-01-13 19:58:15.271 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:58:30.417 EET</date>
+	<endDate>2013-01-13 19:58:30.417 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:58:32.463 EET</date>
+	<endDate>2013-01-13 19:58:32.463 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:58:33.725 EET</date>
+	<endDate>2013-01-13 19:58:33.725 EET</endDate>
+	<originId>org.eclipse.debug.ui.DebugPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:58:33.771 EET</date>
+	<endDate>2013-01-13 19:58:33.771 EET</endDate>
+	<originId>org.eclipse.debug.ui.DebugPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:58:35.743 EET</date>
+	<endDate>2013-01-13 19:58:35.743 EET</endDate>
+	<originId>org.eclipse.debug.ui.DebugPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:58:35.862 EET</date>
+	<endDate>2013-01-13 19:58:35.862 EET</endDate>
+	<originId>org.eclipse.jdt.ui.CompilationUnitEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 19:58:35.863 EET</date>
+	<endDate>2013-01-13 19:58:35.863 EET</endDate>
+	<originId>org.eclipse.debug.ui.DebugPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:58:36.649 EET</date>
+	<endDate>2013-01-13 19:58:36.649 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:58:39.777 EET</date>
+	<endDate>2013-01-13 19:58:39.777 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:58:48.898 EET</date>
+	<endDate>2013-01-13 19:58:48.898 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:58:51.309 EET</date>
+	<endDate>2013-01-13 19:58:51.309 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:59:03.979 EET</date>
+	<endDate>2013-01-13 19:59:03.979 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.ToggleBreakpoint</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:59:06.640 EET</date>
+	<endDate>2013-01-13 19:59:06.640 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.Resume</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:59:11.667 EET</date>
+	<endDate>2013-01-13 19:59:11.667 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:59:15.149 EET</date>
+	<endDate>2013-01-13 19:59:15.149 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:59:24.692 EET</date>
+	<endDate>2013-01-13 19:59:24.692 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 19:59:36.526 EET</date>
+	<endDate>2013-01-13 19:59:36.526 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:00:09.857 EET</date>
+	<endDate>2013-01-13 20:00:09.857 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.showInformation</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:00:59.430 EET</date>
+	<endDate>2013-01-13 20:00:59.430 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:01:05.447 EET</date>
+	<endDate>2013-01-13 20:01:05.447 EET</endDate>
+	<originId>org.eclipse.debug.ui.debugview.toolbar.terminate</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:01:05.449 EET</date>
+	<endDate>2013-01-13 20:01:05.449 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.Terminate</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:01:08.371 EET</date>
+	<endDate>2013-01-13 20:01:08.371 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:01:08.521 EET</date>
+	<endDate>2013-01-13 20:01:08.521 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:01:28.72 EET</date>
+	<endDate>2013-01-13 20:01:28.72 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:01:31.563 EET</date>
+	<endDate>2013-01-13 20:01:31.563 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:01:39.911 EET</date>
+	<endDate>2013-01-13 20:01:39.911 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:01:42.791 EET</date>
+	<endDate>2013-01-13 20:01:42.791 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:01:44.632 EET</date>
+	<endDate>2013-01-13 20:01:44.632 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:01:49.657 EET</date>
+	<endDate>2013-01-13 20:01:49.657 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:01:55.366 EET</date>
+	<endDate>2013-01-13 20:01:55.366 EET</endDate>
+	<originId>org.eclipse.jdt.ui.CompilationUnitEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:01:55.406 EET</date>
+	<endDate>2013-01-13 20:01:55.406 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:02:00.339 EET</date>
+	<endDate>2013-01-13 20:02:00.339 EET</endDate>
+	<originId>org.eclipse.debug.internal.ui.actions.RunDropDownAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:02:18.151 EET</date>
+	<endDate>2013-01-13 20:02:18.151 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:02:23.725 EET</date>
+	<endDate>2013-01-13 20:02:23.725 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.DebugLast</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:02:36.291 EET</date>
+	<endDate>2013-01-13 20:02:36.291 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:02:38.369 EET</date>
+	<endDate>2013-01-13 20:02:38.369 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:02:38.370 EET</date>
+	<endDate>2013-01-13 20:02:38.370 EET</endDate>
+	<originId>org.eclipse.jdt.ui.CompilationUnitEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:02:38.370 EET</date>
+	<endDate>2013-01-13 20:02:38.370 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:02:38.370 EET</date>
+	<endDate>2013-01-13 20:02:38.370 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:02:38.536 EET</date>
+	<endDate>2013-01-13 20:02:38.536 EET</endDate>
+	<originId>org.eclipse.debug.ui.DebugPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:02:38.571 EET</date>
+	<endDate>2013-01-13 20:02:38.571 EET</endDate>
+	<originId>org.eclipse.debug.ui.DebugPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:02:42.270 EET</date>
+	<endDate>2013-01-13 20:02:42.270 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:02:53.67 EET</date>
+	<endDate>2013-01-13 20:02:53.67 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:02:53.472 EET</date>
+	<endDate>2013-01-13 20:02:53.472 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:02:54.393 EET</date>
+	<endDate>2013-01-13 20:02:54.393 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:02:57.644 EET</date>
+	<endDate>2013-01-13 20:02:57.644 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.Resume</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:02:59.653 EET</date>
+	<endDate>2013-01-13 20:02:59.653 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:03:00.436 EET</date>
+	<endDate>2013-01-13 20:03:00.436 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:03:02.650 EET</date>
+	<endDate>2013-01-13 20:03:02.650 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:03:27.901 EET</date>
+	<endDate>2013-01-13 20:03:27.901 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:03:46.763 EET</date>
+	<endDate>2013-01-13 20:03:46.763 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:03:47.531 EET</date>
+	<endDate>2013-01-13 20:03:47.531 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:03:50.251 EET</date>
+	<endDate>2013-01-13 20:03:50.251 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:03:51.107 EET</date>
+	<endDate>2013-01-13 20:03:51.107 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:04:00.534 EET</date>
+	<endDate>2013-01-13 20:04:00.534 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:04:05.294 EET</date>
+	<endDate>2013-01-13 20:04:05.294 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:05:05.274 EET</date>
+	<endDate>2013-01-13 20:05:05.274 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:05:07.293 EET</date>
+	<endDate>2013-01-13 20:05:07.293 EET</endDate>
+	<originId>org.eclipse.debug.ui.debugview.toolbar.terminate</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:05:07.294 EET</date>
+	<endDate>2013-01-13 20:05:07.294 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.Terminate</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:05:17.597 EET</date>
+	<endDate>2013-01-13 20:05:17.597 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:05:17.755 EET</date>
+	<endDate>2013-01-13 20:05:17.755 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:05:19.719 EET</date>
+	<endDate>2013-01-13 20:05:19.719 EET</endDate>
+	<originId>org.eclipse.jdt.ui.CompilationUnitEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:05:19.771 EET</date>
+	<endDate>2013-01-13 20:05:19.771 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:05:21.696 EET</date>
+	<endDate>2013-01-13 20:05:21.696 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:05:32.324 EET</date>
+	<endDate>2013-01-13 20:05:32.324 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:05:40.976 EET</date>
+	<endDate>2013-01-13 20:05:40.976 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.DebugLast</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:05:56.838 EET</date>
+	<endDate>2013-01-13 20:05:56.838 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:05:58.918 EET</date>
+	<endDate>2013-01-13 20:05:58.918 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:05:58.918 EET</date>
+	<endDate>2013-01-13 20:05:58.918 EET</endDate>
+	<originId>org.eclipse.jdt.ui.CompilationUnitEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:05:58.919 EET</date>
+	<endDate>2013-01-13 20:05:58.919 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:05:58.919 EET</date>
+	<endDate>2013-01-13 20:05:58.919 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:05:59.76 EET</date>
+	<endDate>2013-01-13 20:05:59.76 EET</endDate>
+	<originId>org.eclipse.debug.ui.DebugPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:05:59.106 EET</date>
+	<endDate>2013-01-13 20:05:59.106 EET</endDate>
+	<originId>org.eclipse.debug.ui.DebugPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:06:00.767 EET</date>
+	<endDate>2013-01-13 20:06:00.767 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:06:04.369 EET</date>
+	<endDate>2013-01-13 20:06:04.369 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:06:07.495 EET</date>
+	<endDate>2013-01-13 20:06:07.495 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:06:11.824 EET</date>
+	<endDate>2013-01-13 20:06:11.824 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:06:29.595 EET</date>
+	<endDate>2013-01-13 20:06:29.595 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:06:32.404 EET</date>
+	<endDate>2013-01-13 20:06:32.404 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.Resume</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:06:34.14 EET</date>
+	<endDate>2013-01-13 20:06:34.14 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:06:34.528 EET</date>
+	<endDate>2013-01-13 20:06:34.528 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:06:38.5 EET</date>
+	<endDate>2013-01-13 20:06:38.5 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:06:38.745 EET</date>
+	<endDate>2013-01-13 20:06:38.745 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:06:51.880 EET</date>
+	<endDate>2013-01-13 20:06:51.880 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:06:52.481 EET</date>
+	<endDate>2013-01-13 20:06:52.481 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:06:53.620 EET</date>
+	<endDate>2013-01-13 20:06:53.620 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:06:54.319 EET</date>
+	<endDate>2013-01-13 20:06:54.319 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:07:15.194 EET</date>
+	<endDate>2013-01-13 20:07:15.194 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:07:17.485 EET</date>
+	<endDate>2013-01-13 20:07:17.485 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:07:19.719 EET</date>
+	<endDate>2013-01-13 20:07:19.719 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.StepOver</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:10:29.944 EET</date>
+	<endDate>2013-01-13 20:10:29.944 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:10:31.769 EET</date>
+	<endDate>2013-01-13 20:10:31.769 EET</endDate>
+	<originId>org.eclipse.debug.ui.debugview.toolbar.terminate</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:10:31.770 EET</date>
+	<endDate>2013-01-13 20:10:31.770 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.Terminate</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:10:39.822 EET</date>
+	<endDate>2013-01-13 20:10:39.822 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:10:40.73 EET</date>
+	<endDate>2013-01-13 20:10:40.73 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:10:49.227 EET</date>
+	<endDate>2013-01-13 20:10:49.227 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:10:49.402 EET</date>
+	<endDate>2013-01-13 20:10:49.402 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:10:51.587 EET</date>
+	<endDate>2013-01-13 20:10:51.587 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:11:05.684 EET</date>
+	<endDate>2013-01-13 20:11:05.684 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:11:05.861 EET</date>
+	<endDate>2013-01-13 20:11:05.861 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:11:09.741 EET</date>
+	<endDate>2013-01-13 20:11:09.741 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:31.159 EET</date>
+	<endDate>2013-01-13 20:13:31.159 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:13:52.193 EET</date>
+	<endDate>2013-01-13 20:13:52.193 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:57.91 EET</date>
+	<endDate>2013-01-13 20:13:57.91 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:57.312 EET</date>
+	<endDate>2013-01-13 20:13:57.312 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:57.604 EET</date>
+	<endDate>2013-01-13 20:13:57.604 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:57.788 EET</date>
+	<endDate>2013-01-13 20:13:57.788 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:57.952 EET</date>
+	<endDate>2013-01-13 20:13:57.952 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:58.451 EET</date>
+	<endDate>2013-01-13 20:13:58.451 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:58.483 EET</date>
+	<endDate>2013-01-13 20:13:58.483 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:58.514 EET</date>
+	<endDate>2013-01-13 20:13:58.514 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:58.546 EET</date>
+	<endDate>2013-01-13 20:13:58.546 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:58.578 EET</date>
+	<endDate>2013-01-13 20:13:58.578 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:58.610 EET</date>
+	<endDate>2013-01-13 20:13:58.610 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:58.642 EET</date>
+	<endDate>2013-01-13 20:13:58.642 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:58.674 EET</date>
+	<endDate>2013-01-13 20:13:58.674 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:58.901 EET</date>
+	<endDate>2013-01-13 20:13:58.901 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:59.61 EET</date>
+	<endDate>2013-01-13 20:13:59.61 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:59.205 EET</date>
+	<endDate>2013-01-13 20:13:59.205 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:59.357 EET</date>
+	<endDate>2013-01-13 20:13:59.357 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:59.597 EET</date>
+	<endDate>2013-01-13 20:13:59.597 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:13:59.818 EET</date>
+	<endDate>2013-01-13 20:13:59.818 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:00.334 EET</date>
+	<endDate>2013-01-13 20:14:00.334 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:02.707 EET</date>
+	<endDate>2013-01-13 20:14:02.707 EET</endDate>
+	<originId>org.eclipse.ui.edit.cut</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:03.422 EET</date>
+	<endDate>2013-01-13 20:14:03.422 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:03.644 EET</date>
+	<endDate>2013-01-13 20:14:03.644 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:03.884 EET</date>
+	<endDate>2013-01-13 20:14:03.884 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:04.56 EET</date>
+	<endDate>2013-01-13 20:14:04.56 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:04.200 EET</date>
+	<endDate>2013-01-13 20:14:04.200 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:04.324 EET</date>
+	<endDate>2013-01-13 20:14:04.324 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:04.493 EET</date>
+	<endDate>2013-01-13 20:14:04.493 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:09.377 EET</date>
+	<endDate>2013-01-13 20:14:09.377 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:15.564 EET</date>
+	<endDate>2013-01-13 20:14:15.564 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:17.957 EET</date>
+	<endDate>2013-01-13 20:14:17.957 EET</endDate>
+	<originId>org.eclipse.ui.edit.cut</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:18.446 EET</date>
+	<endDate>2013-01-13 20:14:18.446 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:23.273 EET</date>
+	<endDate>2013-01-13 20:14:23.273 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:25.589 EET</date>
+	<endDate>2013-01-13 20:14:25.589 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:25.779 EET</date>
+	<endDate>2013-01-13 20:14:25.779 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:25.944 EET</date>
+	<endDate>2013-01-13 20:14:25.944 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:26.79 EET</date>
+	<endDate>2013-01-13 20:14:26.79 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:26.222 EET</date>
+	<endDate>2013-01-13 20:14:26.222 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:26.375 EET</date>
+	<endDate>2013-01-13 20:14:26.375 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:27.203 EET</date>
+	<endDate>2013-01-13 20:14:27.203 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:14:31.960 EET</date>
+	<endDate>2013-01-13 20:14:31.960 EET</endDate>
+	<originId>org.eclipse.jdt.ui.CompilationUnitEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:14:31.988 EET</date>
+	<endDate>2013-01-13 20:14:31.988 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:34.706 EET</date>
+	<endDate>2013-01-13 20:14:34.706 EET</endDate>
+	<originId>org.eclipse.debug.internal.ui.actions.RunDropDownAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:14:52.115 EET</date>
+	<endDate>2013-01-13 20:14:52.115 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:22:02.932 EET</date>
+	<endDate>2013-01-13 20:22:02.932 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:22:10.172 EET</date>
+	<endDate>2013-01-13 20:22:10.172 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:22:19.142 EET</date>
+	<endDate>2013-01-13 20:22:19.142 EET</endDate>
+	<originId>closeAll</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>menu</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:22:19.143 EET</date>
+	<endDate>2013-01-13 20:22:19.143 EET</endDate>
+	<originId>org.eclipse.ui.file.closeAll</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:22:19.172 EET</date>
+	<endDate>2013-01-13 20:22:19.172 EET</endDate>
+	<originId>org.eclipse.jdt.ui.CompilationUnitEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:22:19.173 EET</date>
+	<endDate>2013-01-13 20:22:19.173 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:22:19.173 EET</date>
+	<endDate>2013-01-13 20:22:19.173 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:22:19.174 EET</date>
+	<endDate>2013-01-13 20:22:19.174 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:22:19.258 EET</date>
+	<endDate>2013-01-13 20:22:19.258 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:22:19.268 EET</date>
+	<endDate>2013-01-13 20:22:19.268 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:22:22.276 EET</date>
+	<endDate>2013-01-13 20:22:22.276 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:22:28.710 EET</date>
+	<endDate>2013-01-13 20:22:28.710 EET</endDate>
+	<originId>org.eclipse.ui.internal.ide.actions.OpenWorkspaceAction$WorkspaceMRUAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>menu</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:22:28.909 EET</date>
+	<endDate>2013-01-13 20:22:28.909 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:22:29.9 EET</date>
+	<endDate>2013-01-13 20:22:29.9 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective closed</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:22:29.36 EET</date>
+	<endDate>2013-01-13 20:22:29.36 EET</endDate>
+	<originId>org.eclipse.debug.ui.DebugPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective closed</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:22:29.66 EET</date>
+	<endDate>2013-01-13 20:22:29.66 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaBrowsingPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective closed</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:22:29.72 EET</date>
+	<endDate>2013-01-13 20:22:29.72 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>closed</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:56:39.545 EET</date>
+	<endDate>2013-01-13 20:56:39.545 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:56:39.582 EET</date>
+	<endDate>2013-01-13 20:56:39.582 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:56:39.640 EET</date>
+	<endDate>2013-01-13 20:56:39.640 EET</endDate>
+	<originId>org.eclipse.jdt.ui.CompilationUnitEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:56:39.641 EET</date>
+	<endDate>2013-01-13 20:56:39.641 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:57:17.296 EET</date>
+	<endDate>2013-01-13 20:57:17.296 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:57:36.5 EET</date>
+	<endDate>2013-01-13 20:57:36.5 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:57:40.794 EET</date>
+	<endDate>2013-01-13 20:57:40.794 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:57:48.924 EET</date>
+	<endDate>2013-01-13 20:57:48.924 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:57:59.332 EET</date>
+	<endDate>2013-01-13 20:57:59.332 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:57:59.378 EET</date>
+	<endDate>2013-01-13 20:57:59.378 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:57:59.443 EET</date>
+	<endDate>2013-01-13 20:57:59.443 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:57:59.444 EET</date>
+	<endDate>2013-01-13 20:57:59.444 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:58:02.596 EET</date>
+	<endDate>2013-01-13 20:58:02.596 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:58:02.597 EET</date>
+	<endDate>2013-01-13 20:58:02.597 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:58:05.832 EET</date>
+	<endDate>2013-01-13 20:58:05.832 EET</endDate>
+	<originId>org.eclipse.debug.internal.ui.actions.RunDropDownAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:58:24.247 EET</date>
+	<endDate>2013-01-13 20:58:24.247 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:58:24.455 EET</date>
+	<endDate>2013-01-13 20:58:24.455 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:58:31.509 EET</date>
+	<endDate>2013-01-13 20:58:31.509 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:58:34.822 EET</date>
+	<endDate>2013-01-13 20:58:34.822 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:58:47.190 EET</date>
+	<endDate>2013-01-13 20:58:47.190 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:58:47.581 EET</date>
+	<endDate>2013-01-13 20:58:47.581 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:58:47.989 EET</date>
+	<endDate>2013-01-13 20:58:47.989 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:58:48.758 EET</date>
+	<endDate>2013-01-13 20:58:48.758 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:58:49.142 EET</date>
+	<endDate>2013-01-13 20:58:49.142 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:58:58.115 EET</date>
+	<endDate>2013-01-13 20:58:58.115 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:58:58.462 EET</date>
+	<endDate>2013-01-13 20:58:58.462 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:58:58.704 EET</date>
+	<endDate>2013-01-13 20:58:58.704 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:58:58.941 EET</date>
+	<endDate>2013-01-13 20:58:58.941 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:58:59.203 EET</date>
+	<endDate>2013-01-13 20:58:59.203 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:58:59.520 EET</date>
+	<endDate>2013-01-13 20:58:59.520 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:58:59.809 EET</date>
+	<endDate>2013-01-13 20:58:59.809 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:59:04.694 EET</date>
+	<endDate>2013-01-13 20:59:04.694 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:59:14.263 EET</date>
+	<endDate>2013-01-13 20:59:14.263 EET</endDate>
+	<originId>org.eclipse.ui.edit.undo</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 20:59:16.103 EET</date>
+	<endDate>2013-01-13 20:59:16.103 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:59:26.336 EET</date>
+	<endDate>2013-01-13 20:59:26.336 EET</endDate>
+	<originId>org.eclipse.jdt.ui.CompilationUnitEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:59:26.441 EET</date>
+	<endDate>2013-01-13 20:59:26.441 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 20:59:26.508 EET</date>
+	<endDate>2013-01-13 20:59:26.508 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:00:26.204 EET</date>
+	<endDate>2013-01-13 21:00:26.204 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:00:27.366 EET</date>
+	<endDate>2013-01-13 21:00:27.366 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:00:28.949 EET</date>
+	<endDate>2013-01-13 21:00:28.949 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:00:29.976 EET</date>
+	<endDate>2013-01-13 21:00:29.976 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:00:30.7 EET</date>
+	<endDate>2013-01-13 21:00:30.7 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:00:30.8 EET</date>
+	<endDate>2013-01-13 21:00:30.8 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:00:49.134 EET</date>
+	<endDate>2013-01-13 21:00:49.134 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:00:49.509 EET</date>
+	<endDate>2013-01-13 21:00:49.509 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:00:49.777 EET</date>
+	<endDate>2013-01-13 21:00:49.777 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:00:50.40 EET</date>
+	<endDate>2013-01-13 21:00:50.40 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:00:50.330 EET</date>
+	<endDate>2013-01-13 21:00:50.330 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:00:50.595 EET</date>
+	<endDate>2013-01-13 21:00:50.595 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:00:50.833 EET</date>
+	<endDate>2013-01-13 21:00:50.833 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:00:51.123 EET</date>
+	<endDate>2013-01-13 21:00:51.123 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:00:51.481 EET</date>
+	<endDate>2013-01-13 21:00:51.481 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:00:51.671 EET</date>
+	<endDate>2013-01-13 21:00:51.671 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:00:51.847 EET</date>
+	<endDate>2013-01-13 21:00:51.847 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:00:52.56 EET</date>
+	<endDate>2013-01-13 21:00:52.56 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:00:52.374 EET</date>
+	<endDate>2013-01-13 21:00:52.374 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:00:56.290 EET</date>
+	<endDate>2013-01-13 21:00:56.290 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:00:59.683 EET</date>
+	<endDate>2013-01-13 21:00:59.683 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:02.58 EET</date>
+	<endDate>2013-01-13 21:01:02.58 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:02.423 EET</date>
+	<endDate>2013-01-13 21:01:02.423 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:02.640 EET</date>
+	<endDate>2013-01-13 21:01:02.640 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:02.848 EET</date>
+	<endDate>2013-01-13 21:01:02.848 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:03.70 EET</date>
+	<endDate>2013-01-13 21:01:03.70 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:03.630 EET</date>
+	<endDate>2013-01-13 21:01:03.630 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:03.905 EET</date>
+	<endDate>2013-01-13 21:01:03.905 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:04.84 EET</date>
+	<endDate>2013-01-13 21:01:04.84 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:04.247 EET</date>
+	<endDate>2013-01-13 21:01:04.247 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:04.533 EET</date>
+	<endDate>2013-01-13 21:01:04.533 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:07.915 EET</date>
+	<endDate>2013-01-13 21:01:07.915 EET</endDate>
+	<originId>AUTOGEN:::org.eclipse.ui.texteditor.ruler.actions/org.eclipse.jdt.internal.ui.javaeditor.JavaSelectRulerAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:08.696 EET</date>
+	<endDate>2013-01-13 21:01:08.696 EET</endDate>
+	<originId>AUTOGEN:::org.eclipse.jdt.debug.CompilationUnitEditor.BreakpointRulerActions/org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:10.853 EET</date>
+	<endDate>2013-01-13 21:01:10.853 EET</endDate>
+	<originId>org.eclipse.jdt.debug.ui.actions.BreakpointRulerActionDelegate</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>menu</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:14.934 EET</date>
+	<endDate>2013-01-13 21:01:14.934 EET</endDate>
+	<originId>org.eclipse.jdt.debug.ui.actions.EnableDisableBreakpointRulerActionDelegate</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>menu</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:19.245 EET</date>
+	<endDate>2013-01-13 21:01:19.245 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:23.266 EET</date>
+	<endDate>2013-01-13 21:01:23.266 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.ToggleBreakpoint</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:24.527 EET</date>
+	<endDate>2013-01-13 21:01:24.527 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:01:34.984 EET</date>
+	<endDate>2013-01-13 21:01:34.984 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.ToggleBreakpoint</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:07.538 EET</date>
+	<endDate>2013-01-13 21:02:07.538 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:12.501 EET</date>
+	<endDate>2013-01-13 21:02:12.501 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:14.695 EET</date>
+	<endDate>2013-01-13 21:02:14.695 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:15.87 EET</date>
+	<endDate>2013-01-13 21:02:15.87 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:17.330 EET</date>
+	<endDate>2013-01-13 21:02:17.330 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:17.561 EET</date>
+	<endDate>2013-01-13 21:02:17.561 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:17.769 EET</date>
+	<endDate>2013-01-13 21:02:17.769 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:18.7 EET</date>
+	<endDate>2013-01-13 21:02:18.7 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:18.441 EET</date>
+	<endDate>2013-01-13 21:02:18.441 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:19.702 EET</date>
+	<endDate>2013-01-13 21:02:19.702 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:27.740 EET</date>
+	<endDate>2013-01-13 21:02:27.740 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:29.998 EET</date>
+	<endDate>2013-01-13 21:02:29.998 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:30.197 EET</date>
+	<endDate>2013-01-13 21:02:30.197 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:30.373 EET</date>
+	<endDate>2013-01-13 21:02:30.373 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:30.523 EET</date>
+	<endDate>2013-01-13 21:02:30.523 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:30.682 EET</date>
+	<endDate>2013-01-13 21:02:30.682 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:30.893 EET</date>
+	<endDate>2013-01-13 21:02:30.893 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:02:38.200 EET</date>
+	<endDate>2013-01-13 21:02:38.200 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:03:05.512 EET</date>
+	<endDate>2013-01-13 21:03:05.512 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.toggleOverwrite</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:03:06.126 EET</date>
+	<endDate>2013-01-13 21:03:06.126 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.toggleOverwrite</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:03:06.451 EET</date>
+	<endDate>2013-01-13 21:03:06.451 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:03:06.758 EET</date>
+	<endDate>2013-01-13 21:03:06.758 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:03:06.919 EET</date>
+	<endDate>2013-01-13 21:03:06.919 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:03:07.47 EET</date>
+	<endDate>2013-01-13 21:03:07.47 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:03:07.159 EET</date>
+	<endDate>2013-01-13 21:03:07.159 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:03:07.261 EET</date>
+	<endDate>2013-01-13 21:03:07.261 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:03:07.393 EET</date>
+	<endDate>2013-01-13 21:03:07.393 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:03:07.555 EET</date>
+	<endDate>2013-01-13 21:03:07.555 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:03:07.774 EET</date>
+	<endDate>2013-01-13 21:03:07.774 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:03:08.687 EET</date>
+	<endDate>2013-01-13 21:03:08.687 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:03:29.214 EET</date>
+	<endDate>2013-01-13 21:03:29.214 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:03:54.440 EET</date>
+	<endDate>2013-01-13 21:03:54.440 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:03:55.959 EET</date>
+	<endDate>2013-01-13 21:03:55.959 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:02.562 EET</date>
+	<endDate>2013-01-13 21:04:02.562 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:03.526 EET</date>
+	<endDate>2013-01-13 21:04:03.526 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:03.704 EET</date>
+	<endDate>2013-01-13 21:04:03.704 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:03.928 EET</date>
+	<endDate>2013-01-13 21:04:03.928 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:04.74 EET</date>
+	<endDate>2013-01-13 21:04:04.74 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:04.238 EET</date>
+	<endDate>2013-01-13 21:04:04.238 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:04.492 EET</date>
+	<endDate>2013-01-13 21:04:04.492 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:04.682 EET</date>
+	<endDate>2013-01-13 21:04:04.682 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:05.56 EET</date>
+	<endDate>2013-01-13 21:04:05.56 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:09.894 EET</date>
+	<endDate>2013-01-13 21:04:09.894 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:10.393 EET</date>
+	<endDate>2013-01-13 21:04:10.393 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:10.424 EET</date>
+	<endDate>2013-01-13 21:04:10.424 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:10.858 EET</date>
+	<endDate>2013-01-13 21:04:10.858 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:11.47 EET</date>
+	<endDate>2013-01-13 21:04:11.47 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:11.211 EET</date>
+	<endDate>2013-01-13 21:04:11.211 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:11.361 EET</date>
+	<endDate>2013-01-13 21:04:11.361 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:11.509 EET</date>
+	<endDate>2013-01-13 21:04:11.509 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:11.671 EET</date>
+	<endDate>2013-01-13 21:04:11.671 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:11.860 EET</date>
+	<endDate>2013-01-13 21:04:11.860 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:12.254 EET</date>
+	<endDate>2013-01-13 21:04:12.254 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:16.66 EET</date>
+	<endDate>2013-01-13 21:04:16.66 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:16.566 EET</date>
+	<endDate>2013-01-13 21:04:16.566 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:17.64 EET</date>
+	<endDate>2013-01-13 21:04:17.64 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:17.96 EET</date>
+	<endDate>2013-01-13 21:04:17.96 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:17.128 EET</date>
+	<endDate>2013-01-13 21:04:17.128 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:17.160 EET</date>
+	<endDate>2013-01-13 21:04:17.160 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:17.192 EET</date>
+	<endDate>2013-01-13 21:04:17.192 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:17.224 EET</date>
+	<endDate>2013-01-13 21:04:17.224 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:17.507 EET</date>
+	<endDate>2013-01-13 21:04:17.507 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:17.696 EET</date>
+	<endDate>2013-01-13 21:04:17.696 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:17.887 EET</date>
+	<endDate>2013-01-13 21:04:17.887 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:18.235 EET</date>
+	<endDate>2013-01-13 21:04:18.235 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:22.12 EET</date>
+	<endDate>2013-01-13 21:04:22.12 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:22.183 EET</date>
+	<endDate>2013-01-13 21:04:22.183 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:22.378 EET</date>
+	<endDate>2013-01-13 21:04:22.378 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:22.563 EET</date>
+	<endDate>2013-01-13 21:04:22.563 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:22.709 EET</date>
+	<endDate>2013-01-13 21:04:22.709 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:22.969 EET</date>
+	<endDate>2013-01-13 21:04:22.969 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:23.437 EET</date>
+	<endDate>2013-01-13 21:04:23.437 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:29.44 EET</date>
+	<endDate>2013-01-13 21:04:29.44 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:31.929 EET</date>
+	<endDate>2013-01-13 21:04:31.929 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:32.188 EET</date>
+	<endDate>2013-01-13 21:04:32.188 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:32.361 EET</date>
+	<endDate>2013-01-13 21:04:32.361 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:32.516 EET</date>
+	<endDate>2013-01-13 21:04:32.516 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:32.661 EET</date>
+	<endDate>2013-01-13 21:04:32.661 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:32.958 EET</date>
+	<endDate>2013-01-13 21:04:32.958 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:33.284 EET</date>
+	<endDate>2013-01-13 21:04:33.284 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:04:53.637 EET</date>
+	<endDate>2013-01-13 21:04:53.637 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:05:04.655 EET</date>
+	<endDate>2013-01-13 21:05:04.655 EET</endDate>
+	<originId>org.eclipse.debug.internal.ui.actions.RunDropDownAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:05:53.427 EET</date>
+	<endDate>2013-01-13 21:05:53.427 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:06:21.326 EET</date>
+	<endDate>2013-01-13 21:06:21.326 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:06:22.271 EET</date>
+	<endDate>2013-01-13 21:06:22.271 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:06:24.483 EET</date>
+	<endDate>2013-01-13 21:06:24.483 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:06:25.471 EET</date>
+	<endDate>2013-01-13 21:06:25.471 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:06:25.494 EET</date>
+	<endDate>2013-01-13 21:06:25.494 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:06:25.495 EET</date>
+	<endDate>2013-01-13 21:06:25.495 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:06:38.490 EET</date>
+	<endDate>2013-01-13 21:06:38.490 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:06:39.273 EET</date>
+	<endDate>2013-01-13 21:06:39.273 EET</endDate>
+	<originId>org.eclipse.ui.edit.cut</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:06:41.187 EET</date>
+	<endDate>2013-01-13 21:06:41.187 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:06:47.125 EET</date>
+	<endDate>2013-01-13 21:06:47.125 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:06:47.752 EET</date>
+	<endDate>2013-01-13 21:06:47.752 EET</endDate>
+	<originId>org.eclipse.ui.edit.cut</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:06:49.444 EET</date>
+	<endDate>2013-01-13 21:06:49.444 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:06:51.252 EET</date>
+	<endDate>2013-01-13 21:06:51.252 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:06:51.765 EET</date>
+	<endDate>2013-01-13 21:06:51.765 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:06:54.750 EET</date>
+	<endDate>2013-01-13 21:06:54.750 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:06:55.697 EET</date>
+	<endDate>2013-01-13 21:06:55.697 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:06:56.168 EET</date>
+	<endDate>2013-01-13 21:06:56.168 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:06:56.643 EET</date>
+	<endDate>2013-01-13 21:06:56.643 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:07:09.849 EET</date>
+	<endDate>2013-01-13 21:07:09.849 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:07:39.18 EET</date>
+	<endDate>2013-01-13 21:07:39.18 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:07:41.524 EET</date>
+	<endDate>2013-01-13 21:07:41.524 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:07:42.136 EET</date>
+	<endDate>2013-01-13 21:07:42.136 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:07:42.442 EET</date>
+	<endDate>2013-01-13 21:07:42.442 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:07:42.725 EET</date>
+	<endDate>2013-01-13 21:07:42.725 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:08:33.297 EET</date>
+	<endDate>2013-01-13 21:08:33.297 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:08:37.761 EET</date>
+	<endDate>2013-01-13 21:08:37.761 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:15.344 EET</date>
+	<endDate>2013-01-13 21:09:15.344 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:24.644 EET</date>
+	<endDate>2013-01-13 21:09:24.644 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:24.977 EET</date>
+	<endDate>2013-01-13 21:09:24.977 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:25.252 EET</date>
+	<endDate>2013-01-13 21:09:25.252 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:25.489 EET</date>
+	<endDate>2013-01-13 21:09:25.489 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:25.669 EET</date>
+	<endDate>2013-01-13 21:09:25.669 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:26.292 EET</date>
+	<endDate>2013-01-13 21:09:26.292 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:26.888 EET</date>
+	<endDate>2013-01-13 21:09:26.888 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:27.219 EET</date>
+	<endDate>2013-01-13 21:09:27.219 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:27.384 EET</date>
+	<endDate>2013-01-13 21:09:27.384 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:27.528 EET</date>
+	<endDate>2013-01-13 21:09:27.528 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:27.684 EET</date>
+	<endDate>2013-01-13 21:09:27.684 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:27.906 EET</date>
+	<endDate>2013-01-13 21:09:27.906 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:28.925 EET</date>
+	<endDate>2013-01-13 21:09:28.925 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:30.247 EET</date>
+	<endDate>2013-01-13 21:09:30.247 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:41.551 EET</date>
+	<endDate>2013-01-13 21:09:41.551 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:42.700 EET</date>
+	<endDate>2013-01-13 21:09:42.700 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:51.517 EET</date>
+	<endDate>2013-01-13 21:09:51.517 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:52.254 EET</date>
+	<endDate>2013-01-13 21:09:52.254 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:53.130 EET</date>
+	<endDate>2013-01-13 21:09:53.130 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:53.424 EET</date>
+	<endDate>2013-01-13 21:09:53.424 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:53.762 EET</date>
+	<endDate>2013-01-13 21:09:53.762 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:53.946 EET</date>
+	<endDate>2013-01-13 21:09:53.946 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:54.123 EET</date>
+	<endDate>2013-01-13 21:09:54.123 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:09:54.425 EET</date>
+	<endDate>2013-01-13 21:09:54.425 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:01.329 EET</date>
+	<endDate>2013-01-13 21:10:01.329 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:11.585 EET</date>
+	<endDate>2013-01-13 21:10:11.585 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:27.604 EET</date>
+	<endDate>2013-01-13 21:10:27.604 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:27.902 EET</date>
+	<endDate>2013-01-13 21:10:27.902 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:28.170 EET</date>
+	<endDate>2013-01-13 21:10:28.170 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:28.422 EET</date>
+	<endDate>2013-01-13 21:10:28.422 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:31.102 EET</date>
+	<endDate>2013-01-13 21:10:31.102 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.select.lineEnd</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:32.57 EET</date>
+	<endDate>2013-01-13 21:10:32.57 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:32.542 EET</date>
+	<endDate>2013-01-13 21:10:32.542 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:33.66 EET</date>
+	<endDate>2013-01-13 21:10:33.66 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:33.344 EET</date>
+	<endDate>2013-01-13 21:10:33.344 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:33.621 EET</date>
+	<endDate>2013-01-13 21:10:33.621 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:33.869 EET</date>
+	<endDate>2013-01-13 21:10:33.869 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:34.175 EET</date>
+	<endDate>2013-01-13 21:10:34.175 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:34.504 EET</date>
+	<endDate>2013-01-13 21:10:34.504 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:38.508 EET</date>
+	<endDate>2013-01-13 21:10:38.508 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:10:39.445 EET</date>
+	<endDate>2013-01-13 21:10:39.445 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:11:12.994 EET</date>
+	<endDate>2013-01-13 21:11:12.994 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:11:16.188 EET</date>
+	<endDate>2013-01-13 21:11:16.188 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:11:17.85 EET</date>
+	<endDate>2013-01-13 21:11:17.85 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:11:17.113 EET</date>
+	<endDate>2013-01-13 21:11:17.113 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:11:17.115 EET</date>
+	<endDate>2013-01-13 21:11:17.115 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:11:40.317 EET</date>
+	<endDate>2013-01-13 21:11:40.317 EET</endDate>
+	<originId>org.eclipse.debug.ui.commands.ToggleBreakpoint</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:11:57.353 EET</date>
+	<endDate>2013-01-13 21:11:57.353 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:12:02.454 EET</date>
+	<endDate>2013-01-13 21:12:02.454 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:12:03.438 EET</date>
+	<endDate>2013-01-13 21:12:03.438 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:13:13.907 EET</date>
+	<endDate>2013-01-13 21:13:13.907 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:13:14.46 EET</date>
+	<endDate>2013-01-13 21:13:14.46 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:13:17.567 EET</date>
+	<endDate>2013-01-13 21:13:17.567 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:13:17.674 EET</date>
+	<endDate>2013-01-13 21:13:17.674 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:13:19.999 EET</date>
+	<endDate>2013-01-13 21:13:19.999 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:13:21.90 EET</date>
+	<endDate>2013-01-13 21:13:21.90 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:13:21.412 EET</date>
+	<endDate>2013-01-13 21:13:21.412 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:13:22.401 EET</date>
+	<endDate>2013-01-13 21:13:22.401 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:13:22.435 EET</date>
+	<endDate>2013-01-13 21:13:22.435 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:13:22.435 EET</date>
+	<endDate>2013-01-13 21:13:22.435 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:13:37.577 EET</date>
+	<endDate>2013-01-13 21:13:37.577 EET</endDate>
+	<originId>org.eclipse.ui.edit.cut</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:13:40.753 EET</date>
+	<endDate>2013-01-13 21:13:40.753 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:13:43.339 EET</date>
+	<endDate>2013-01-13 21:13:43.339 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:13:43.764 EET</date>
+	<endDate>2013-01-13 21:13:43.764 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:13:44.160 EET</date>
+	<endDate>2013-01-13 21:13:44.160 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:13:45.198 EET</date>
+	<endDate>2013-01-13 21:13:45.198 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:14:11.926 EET</date>
+	<endDate>2013-01-13 21:14:11.926 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:14:13.91 EET</date>
+	<endDate>2013-01-13 21:14:13.91 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:14:13.750 EET</date>
+	<endDate>2013-01-13 21:14:13.750 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:14:13.895 EET</date>
+	<endDate>2013-01-13 21:14:13.895 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:14:52.672 EET</date>
+	<endDate>2013-01-13 21:14:52.672 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:14:53.691 EET</date>
+	<endDate>2013-01-13 21:14:53.691 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:14:53.718 EET</date>
+	<endDate>2013-01-13 21:14:53.718 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:14:53.719 EET</date>
+	<endDate>2013-01-13 21:14:53.719 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:16:40.479 EET</date>
+	<endDate>2013-01-13 21:16:40.479 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:16:47.106 EET</date>
+	<endDate>2013-01-13 21:16:47.106 EET</endDate>
+	<originId>org.eclipse.debug.internal.ui.actions.RunDropDownAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:17:55.573 EET</date>
+	<endDate>2013-01-13 21:17:55.573 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:17:57.839 EET</date>
+	<endDate>2013-01-13 21:17:57.839 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:17:58.838 EET</date>
+	<endDate>2013-01-13 21:17:58.838 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:17:58.868 EET</date>
+	<endDate>2013-01-13 21:17:58.868 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:17:58.868 EET</date>
+	<endDate>2013-01-13 21:17:58.868 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorOpen</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:19:02.750 EET</date>
+	<endDate>2013-01-13 21:19:02.750 EET</endDate>
+	<originId>org.eclipse.ui.edit.copy</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:19:05.664 EET</date>
+	<endDate>2013-01-13 21:19:05.664 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:19:06.337 EET</date>
+	<endDate>2013-01-13 21:19:06.337 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:19:08.979 EET</date>
+	<endDate>2013-01-13 21:19:08.979 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:19:19.247 EET</date>
+	<endDate>2013-01-13 21:19:19.247 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:19:25.293 EET</date>
+	<endDate>2013-01-13 21:19:25.293 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:19:26.146 EET</date>
+	<endDate>2013-01-13 21:19:26.146 EET</endDate>
+	<originId>org.eclipse.debug.internal.ui.actions.RunDropDownAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:20:00.195 EET</date>
+	<endDate>2013-01-13 21:20:00.195 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:20:40.233 EET</date>
+	<endDate>2013-01-13 21:20:40.233 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:20:49.278 EET</date>
+	<endDate>2013-01-13 21:20:49.278 EET</endDate>
+	<originId>org.eclipse.debug.internal.ui.actions.RunDropDownAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:21:40.706 EET</date>
+	<endDate>2013-01-13 21:21:40.706 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:23:09.488 EET</date>
+	<endDate>2013-01-13 21:23:09.488 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:23:21.439 EET</date>
+	<endDate>2013-01-13 21:23:21.439 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:23:26.58 EET</date>
+	<endDate>2013-01-13 21:23:26.58 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:23:29.421 EET</date>
+	<endDate>2013-01-13 21:23:29.421 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:23:32.352 EET</date>
+	<endDate>2013-01-13 21:23:32.352 EET</endDate>
+	<originId>org.eclipse.debug.internal.ui.actions.RunDropDownAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:18.995 EET</date>
+	<endDate>2013-01-13 21:24:18.995 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.20 EET</date>
+	<endDate>2013-01-13 21:24:30.20 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.515 EET</date>
+	<endDate>2013-01-13 21:24:30.515 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.547 EET</date>
+	<endDate>2013-01-13 21:24:30.547 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.579 EET</date>
+	<endDate>2013-01-13 21:24:30.579 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.612 EET</date>
+	<endDate>2013-01-13 21:24:30.612 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.643 EET</date>
+	<endDate>2013-01-13 21:24:30.643 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.674 EET</date>
+	<endDate>2013-01-13 21:24:30.674 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.707 EET</date>
+	<endDate>2013-01-13 21:24:30.707 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.739 EET</date>
+	<endDate>2013-01-13 21:24:30.739 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.771 EET</date>
+	<endDate>2013-01-13 21:24:30.771 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.802 EET</date>
+	<endDate>2013-01-13 21:24:30.802 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.835 EET</date>
+	<endDate>2013-01-13 21:24:30.835 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.867 EET</date>
+	<endDate>2013-01-13 21:24:30.867 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.898 EET</date>
+	<endDate>2013-01-13 21:24:30.898 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.931 EET</date>
+	<endDate>2013-01-13 21:24:30.931 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.962 EET</date>
+	<endDate>2013-01-13 21:24:30.962 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:30.994 EET</date>
+	<endDate>2013-01-13 21:24:30.994 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:31.27 EET</date>
+	<endDate>2013-01-13 21:24:31.27 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:31.58 EET</date>
+	<endDate>2013-01-13 21:24:31.58 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:31.90 EET</date>
+	<endDate>2013-01-13 21:24:31.90 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:31.122 EET</date>
+	<endDate>2013-01-13 21:24:31.122 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:31.250 EET</date>
+	<endDate>2013-01-13 21:24:31.250 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:31.447 EET</date>
+	<endDate>2013-01-13 21:24:31.447 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:31.591 EET</date>
+	<endDate>2013-01-13 21:24:31.591 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:32.4 EET</date>
+	<endDate>2013-01-13 21:24:32.4 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:33.980 EET</date>
+	<endDate>2013-01-13 21:24:33.980 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:35.292 EET</date>
+	<endDate>2013-01-13 21:24:35.292 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:35.976 EET</date>
+	<endDate>2013-01-13 21:24:35.976 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:24:37.414 EET</date>
+	<endDate>2013-01-13 21:24:37.414 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:24:57.969 EET</date>
+	<endDate>2013-01-13 21:24:57.969 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:24:58.977 EET</date>
+	<endDate>2013-01-13 21:24:58.977 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:25:22.501 EET</date>
+	<endDate>2013-01-13 21:25:22.501 EET</endDate>
+	<originId>org.eclipse.ui.edit.copy</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:25:24.29 EET</date>
+	<endDate>2013-01-13 21:25:24.29 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:25:35.657 EET</date>
+	<endDate>2013-01-13 21:25:35.657 EET</endDate>
+	<originId>org.eclipse.ui.edit.cut</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:25:53.720 EET</date>
+	<endDate>2013-01-13 21:25:53.720 EET</endDate>
+	<originId>org.eclipse.ui.edit.paste</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:26:01.529 EET</date>
+	<endDate>2013-01-13 21:26:01.529 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:26:02.975 EET</date>
+	<endDate>2013-01-13 21:26:02.975 EET</endDate>
+	<originId>org.eclipse.ui.edit.text.goto.lineStart</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:26:05.392 EET</date>
+	<endDate>2013-01-13 21:26:05.392 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:26:08.380 EET</date>
+	<endDate>2013-01-13 21:26:08.380 EET</endDate>
+	<originId>org.eclipse.debug.internal.ui.actions.RunDropDownAction</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>toolbar</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:26:41.129 EET</date>
+	<endDate>2013-01-13 21:26:41.129 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:26:48.803 EET</date>
+	<endDate>2013-01-13 21:26:48.803 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:26:56.142 EET</date>
+	<endDate>2013-01-13 21:26:56.142 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:26:56.788 EET</date>
+	<endDate>2013-01-13 21:26:56.788 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:26:57.102 EET</date>
+	<endDate>2013-01-13 21:26:57.102 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:26:57.442 EET</date>
+	<endDate>2013-01-13 21:26:57.442 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:26:57.663 EET</date>
+	<endDate>2013-01-13 21:26:57.663 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:26:57.951 EET</date>
+	<endDate>2013-01-13 21:26:57.951 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:26:58.359 EET</date>
+	<endDate>2013-01-13 21:26:58.359 EET</endDate>
+	<originId>org.eclipse.ui.edit.delete</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:27:08.726 EET</date>
+	<endDate>2013-01-13 21:27:08.726 EET</endDate>
+	<originId>org.eclipse.ui.file.save</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>keybinding</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:27:16.271 EET</date>
+	<endDate>2013-01-13 21:27:16.271 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:27:17.228 EET</date>
+	<endDate>2013-01-13 21:27:17.228 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:27:19.183 EET</date>
+	<endDate>2013-01-13 21:27:19.183 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:27:20.49 EET</date>
+	<endDate>2013-01-13 21:27:20.49 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:27:28.448 EET</date>
+	<endDate>2013-01-13 21:27:28.448 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>LTrAZqc28aWWajKqfyrRXemCx40=</structureHandle>
+	<navigation>null</navigation>
+	<delta>activated</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:27:28.574 EET</date>
+	<endDate>2013-01-13 21:27:28.574 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: actionSetShow</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:27:28.680 EET</date>
+	<endDate>2013-01-13 21:27:28.680 EET</endDate>
+	<originId>com.swtdesigner.editors.MultiPageEditor</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:27:29.611 EET</date>
+	<endDate>2013-01-13 21:27:29.611 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective changed: editorClose</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:27:29.612 EET</date>
+	<endDate>2013-01-13 21:27:29.612 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective closed</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:27:29.639 EET</date>
+	<endDate>2013-01-13 21:27:29.639 EET</endDate>
+	<originId>org.eclipse.debug.ui.DebugPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective closed</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>preference</kind>
+	<date>2013-01-13 21:27:29.642 EET</date>
+	<endDate>2013-01-13 21:27:29.642 EET</endDate>
+	<originId>org.eclipse.jdt.ui.JavaBrowsingPerspective</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>perspective closed</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>
+<interactionEvent>
+	<kind>command</kind>
+	<date>2013-01-13 21:27:29.648 EET</date>
+	<endDate>2013-01-13 21:27:29.648 EET</endDate>
+	<originId>org.eclipse.ui.internal.WorkbenchWindow</originId>
+	<structureKind>null</structureKind>
+	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
+	<navigation>null</navigation>
+	<delta>closed</delta>
+	<interestContribution>1.0</interestContribution>
+</interactionEvent>

programming_language: HTML
filename: 00732ff1a25d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,524 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+import java.lang.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return int the number of affected things
+	 */
+	
+	public int executeParameterizedQuery(String query, Object[] parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		//TODO...
+		// boolean - ok
+		// String  - ok
+		// char    - 
+		// byte    -
+		// short   -
+		// int     -
+		// long    -
+		// double  -
+		// float   -
+		// Date    -
+		// null ???
+		
+		try {
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i, parameters[i]);
+				
+				/*if (parameters[i] instanceof Boolean) {
+					
+					sqlStatement.setBoolean(i, ((Boolean)parameters[i]).booleanValue());
+					continue;
+				}
+				if (parameters[i] instanceof String) {
+					
+					sqlStatement.setString(i, ((String)parameters[i].toString()));
+					continue;
+				}
+				if (parameters[i] instanceof Character) {
+					
+					sqlStatement.set
+				}*/
+			}
+			
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: f0aff560a45d00121890bdcc27f78f62
change_type: ModificationType.RENAME
diff: @@ -4,6 +4,7 @@ import java.awt.Dimension;
 import java.awt.EventQueue;
 import java.awt.FlowLayout;
 import java.awt.GridLayout;
+import java.awt.Insets;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.awt.event.WindowListener;
@@ -32,6 +33,7 @@ import com.jgoodies.forms.layout.ColumnSpec;
 import com.jgoodies.forms.layout.FormLayout;
 import com.jgoodies.forms.layout.RowSpec;
 
+
 public class mainWindow extends JFrame {
 
 	private final JMenuBar mainWindowMenu = new JMenuBar();
@@ -45,9 +47,17 @@ public class mainWindow extends JFrame {
 	
 	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
 	private final JPanel mainWindowStatusPanel = new JPanel();
-	private final JPanel panel = new JPanel();
 	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogin = new JButton();
 	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
+
+	private final JLabel mainWindowStatusPanelSeparatorLabel = new JLabel();
+	private final JLabel mainWindowStatusPanelSeparatorLabel2 = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogout = new JButton();
+	
+	private final JMenuItem operationsProductsManagement = new JMenuItem();
+	private final JMenuItem operationsOrdersManagement = new JMenuItem();
+	private final JMenuItem operationsNewOrder = new JMenuItem();
 	/**
 	 * Launch the application
 	 * @param args
@@ -110,10 +120,25 @@ public class mainWindow extends JFrame {
 		Operations.setText("");
 		Operations.setEnabled(false);
 		
+		Operations.add(operationsNewOrder);
+		operationsNewOrder.addActionListener(new OperationsNewOrderActionListener());
+		operationsNewOrder.setText(" ");
+
+		Operations.addSeparator();
+		
+		Operations.add(operationsProductsManagement);
+		operationsProductsManagement.addActionListener(new OperationsProductsManagementActionListener());
+		operationsProductsManagement.setText("  ");
+		
+		Operations.add(operationsOrdersManagement);
+		operationsOrdersManagement.addActionListener(new OperationsOrdersManagementActionListener());
+		operationsOrdersManagement.setText("  ");
+		
 		mainWindowMenu.add(Help);
 		Help.setText("");
 		
 		Help.add(HelpAbout);
+		HelpAbout.addActionListener(new HelpAboutActionListener());
 		HelpAbout.setText("");
 		
 		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
@@ -121,6 +146,10 @@ public class mainWindow extends JFrame {
 			new ColumnSpec[] {
 				ColumnSpec.decode("149dlu"),
 				ColumnSpec.decode("72px"),
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
 				FormFactory.DEFAULT_COLSPEC},
 			new RowSpec[] {
 				FormFactory.RELATED_GAP_ROWSPEC,
@@ -132,9 +161,24 @@ public class mainWindow extends JFrame {
 		mainWindowStatusPanelLoggedUserLabel.setText(":");
 		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
 		
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogin, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogin.addActionListener(new MainWindowStatusPanelLoggedUserLoginActionListener());
+		mainWindowStatusPanelLoggedUserLogin.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(4, 1, 1, 2, CellConstraints.CENTER, CellConstraints.DEFAULT));
 		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
-		mainWindowStatusPanelLoggedUserSettings.setText("");
+		mainWindowStatusPanelLoggedUserSettings.setMargin(new Insets(2, 14, 2, 14));
+		mainWindowStatusPanelLoggedUserSettings.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel, new CellConstraints(3, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel2, new CellConstraints(5, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel2.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogout, new CellConstraints(6, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogout.addActionListener(new MainWindowStatusPanelLoggedUserLogoutActionListener());
+		mainWindowStatusPanelLoggedUserLogout.setText("");
 		mainWindowStatusPanelSetEnabled(false);
 	}
 	
@@ -170,11 +214,41 @@ public class mainWindow extends JFrame {
 			fileDisconnectFromDb_actionPerformed(e);
 		}
 	}
+	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogin_actionPerformed(e);
+		}
+	}
 	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
 		public void actionPerformed(ActionEvent e) {
 			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
 		}
 	}
+	private class MainWindowStatusPanelLoggedUserLogoutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogout_actionPerformed(e);
+		}
+	}
+	private class HelpAboutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			helpAbout_actionPerformed(e);
+		}
+	}
+	private class OperationsProductsManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsProductsManagement_actionPerformed(e);
+		}
+	}
+	private class OperationsNewOrderActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsNewOrder_actionPerformed(e);
+		}
+	}
+	private class OperationsOrdersManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsOrdersManagement_actionPerformed(e);
+		}
+	}
 
 	protected void this_windowClosing(WindowEvent e) {
 		
@@ -184,8 +258,7 @@ public class mainWindow extends JFrame {
 			
 			if (databaseConnectWindow.dbPortal.isConnected()) {
 				
-				databaseConnectWindow.dbPortal.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
+				databaseConnectWindow.dbPortal.finalize();
 			}
 		}
 		this.dispose();
@@ -194,14 +267,13 @@ public class mainWindow extends JFrame {
 	
 	protected void fileExit_actionPerformed(ActionEvent e) {
 
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
 	}
 	
 	////////////////////////////////////////////////////////////////////////
 	
 	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
 		
-		//databaseConnectWindow.main(null);
 		databaseConnectWindow dcw = new databaseConnectWindow();
 		dcw.setVisible(true);
 		dcw.addWindowListener(databaseConnectWindowClosing);
@@ -234,18 +306,20 @@ public class mainWindow extends JFrame {
 		
 		if (databaseConnectWindow.dbPortal != null) {
 			
-			databaseConnectWindow.dbPortal.finallize();
+			databaseConnectWindow.dbPortal.finalize();
 			
 			this.FileConnectToDb.setEnabled(true);
 			this.FileDisconnectFromDb.setEnabled(false);			
 			this.Operations.setEnabled(false);
-			this.mainWindowStatusPanelSetEnabled(false);			
+			this.mainWindowStatusPanelSetEnabled(false);	
+			this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			operatorUserLoginWindow.loggedUserId = -1;
 		}
 	}
 	
 	////////////////////////////////////////////////////////////////////////
 	
-	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
 		
 		operatorUserLoginWindow oul = new operatorUserLoginWindow();
 		oul.setVisible(true);
@@ -266,7 +340,60 @@ public class mainWindow extends JFrame {
 			}
 		}
 	};
+		
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+		
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		operatorUserSettingsWindow ousw = new operatorUserSettingsWindow();
+		ousw.setVisible(true);
+		ousw.addWindowListener(operatorUserSettingsWindowClosing);
+	}
+	
+	private static WindowListener operatorUserSettingsWindowClosing = new WindowAdapter() {
+		
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserSettingsWindow.operatorFirstNameLastNameCombination);
+			}
+			else { //if operator was deleted
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
 	
 	////////////////////////////////////////////////////////////////////////
 	
+	protected void mainWindowStatusPanelLoggedUserLogout_actionPerformed(ActionEvent e) {
+		
+		this.Operations.setEnabled(false);
+		this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+		operatorUserLoginWindow.loggedUserId = -1;
+	}
+	
+	protected void helpAbout_actionPerformed(ActionEvent e) {
+		
+		JOptionPane.showMessageDialog(this, "eShop ver.-1.00\n(C) 2013   &  ", "", JOptionPane.INFORMATION_MESSAGE);
+	}
+	
+	protected void operationsProductsManagement_actionPerformed(ActionEvent e) {
+		//TODO...		
+	}
+	protected void operationsNewOrder_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	protected void operationsOrdersManagement_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	
+	
+	
+	
 }

programming_language: Java
filename: 10bfa35fa55d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,523 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return int the number of affected things
+	 */
+	
+	public int executeParameterizedNonQuery(String query, Object[] parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		//TODO...
+		// boolean - ok
+		// String  - ok
+		// char    - 
+		// byte    -
+		// short   -
+		// int     -
+		// long    -
+		// double  -
+		// float   -
+		// Date    -
+		// null ???
+		
+		try {
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i, parameters[i]);
+				
+				/*if (parameters[i] instanceof Boolean) {
+					
+					sqlStatement.setBoolean(i, ((Boolean)parameters[i]).booleanValue());
+					continue;
+				}
+				if (parameters[i] instanceof String) {
+					
+					sqlStatement.setString(i, ((String)parameters[i].toString()));
+					continue;
+				}
+				if (parameters[i] instanceof Character) {
+					
+					sqlStatement.set
+				}*/
+			}
+			
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: 10ee494fb45c00121e34961e0ace9d22
change_type: ModificationType.DELETE
diff: @@ -1,62 +0,0 @@
-import java.awt.EventQueue;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.WindowConstants;
-import javax.swing.border.EtchedBorder;
-import javax.swing.border.TitledBorder;
-
-
-public class operatorUserLogin extends JFrame {
-
-	private final JPanel groupLoginPanel = new JPanel();
-	private final JPanel groupCreateNewUserPanel = new JPanel();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					operatorUserLogin frame = new operatorUserLogin();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public operatorUserLogin() {
-		super();
-		setBounds(100, 100, 518, 269);
-		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//
-	}
-	private void jbInit() throws Exception {
-		getContentPane().setLayout(null);
-		setTitle("  ");
-		setName("operatorLogin");
-		setResizable(false);
-		setAlwaysOnTop(true);
-		
-		getContentPane().add(groupLoginPanel);
-		groupLoginPanel.setBorder(new TitledBorder(null, "", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
-		groupLoginPanel.setBounds(10, 10, 243, 213);
-		
-		getContentPane().add(groupCreateNewUserPanel);
-		groupCreateNewUserPanel.setBorder(new TitledBorder(null, "", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
-		groupCreateNewUserPanel.setBounds(263, 10, 243, 213);
-	}
-
-}

programming_language: unknown
filename: b065388fff5c00121f22d5fb8a5d79d9
change_type: ModificationType.DELETE
diff: @@ -1,109 +0,0 @@
-import java.awt.EventQueue;
-import javax.swing.JButton;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPasswordField;
-import javax.swing.JTextField;
-
-import database_management.MySQLdbManager;
-import md5_calculator.Md5hashcalc;
-
-public class operatorUserSettingsWindow extends JFrame {
-
-	private final JLabel usernameLabel = new JLabel();
-	private final JLabel passwordLabel = new JLabel();
-	private final JLabel passwordAgainLabel = new JLabel();
-	private final JLabel nameLabel = new JLabel();
-	private final JLabel lastNameLabel = new JLabel();
-	private final JButton updateButton = new JButton();
-	private final JTextField firstNameTextField = new JTextField();
-	private final JTextField lastNameTextField = new JTextField();
-	private final JPasswordField passwordPasswordField = new JPasswordField();
-	private final JPasswordField passwordAgainPasswordField = new JPasswordField();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public operatorUserSettingsWindow() {
-		super();
-		setBounds(100, 100, 314, 214);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//
-	}
-	private void jbInit() throws Exception {
-		getContentPane().setLayout(null);
-		setTitle("  ");
-		setName("operatorUserSettings");
-		
-		getContentPane().add(usernameLabel);
-		usernameLabel.setText(":");
-		usernameLabel.setBounds(10, 0, 97, 16);
-		
-		getContentPane().add(passwordLabel);
-		passwordLabel.setText(":");
-		passwordLabel.setBounds(10, 76, 97, 16);
-		
-		getContentPane().add(passwordAgainLabel);
-		passwordAgainLabel.setText(" :");
-		passwordAgainLabel.setBounds(10, 95, 97, 16);
-		
-		getContentPane().add(nameLabel);
-		nameLabel.setText(":");
-		nameLabel.setBounds(10, 32, 97, 16);
-		
-		getContentPane().add(lastNameLabel);
-		lastNameLabel.setText(":");
-		lastNameLabel.setBounds(10, 54, 97, 16);
-		
-		getContentPane().add(updateButton);
-		updateButton.setText("");
-		updateButton.setBounds(93, 140, 106, 26);
-		
-		getContentPane().add(firstNameTextField);
-		firstNameTextField.setBounds(113, 30, 175, 20);
-		
-		getContentPane().add(lastNameTextField);
-		lastNameTextField.setBounds(113, 52, 175, 20);
-		
-		getContentPane().add(passwordPasswordField);
-		passwordPasswordField.setBounds(113, 74, 175, 20);
-		
-		getContentPane().add(passwordAgainPasswordField);
-		passwordAgainPasswordField.setBounds(113, 97, 175, 20);
-		
-		getCurrentUserData();
-	}
-	
-	private void getCurrentUserData() {
-		
-		if (databaseConnectWindow.dbPortal == null) {
-			return;
-		}
-		if (databaseConnectWindow.dbPortal.isConnected() == false) {
-			return;
-		}
-	}
-
-}

programming_language: unknown
filename: 200b7592a45d00121890bdcc27f78f62
change_type: ModificationType.RENAME
diff: @@ -3,15 +3,16 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.WindowEvent;
 
-import javax.swing.JButton;
-
 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JPasswordField;
 import javax.swing.JTextField;
+import javax.swing.WindowConstants;
+import javax.swing.JButton;
 import javax.swing.JOptionPane;
 
 import database_management.MySQLdbManager;
+import md5_calculator.Md5hashcalc;
 
 public class databaseConnectWindow extends JFrame {
 
@@ -33,7 +34,7 @@ public class databaseConnectWindow extends JFrame {
 	 * @param args
 	 */
 	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
+		EventQueue.invokeLater(new Runnable() { 
 			public void run() {
 				try {
 					databaseConnectWindow frame = new databaseConnectWindow();
@@ -42,7 +43,7 @@ public class databaseConnectWindow extends JFrame {
 					e.printStackTrace();
 				}
 			}
-		});
+		});		
 	}
 
 	/**
@@ -51,7 +52,7 @@ public class databaseConnectWindow extends JFrame {
 	public databaseConnectWindow() {
 		super();
 		setBounds(100, 100, 384, 203);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
 		try {
 			jbInit();
 		} catch (Throwable e) {
@@ -115,6 +116,7 @@ public class databaseConnectWindow extends JFrame {
 			connectToDatabaseButton_actionPerformed(e);
 		}
 	}
+
 	protected void connectToDatabaseButton_actionPerformed(ActionEvent e) {
 		
 		String password = "";
@@ -136,7 +138,7 @@ public class databaseConnectWindow extends JFrame {
 			dbPortal.disconnect(); //just in case
 			
 			if (dbPortal.connect() == false) { //connection settings problem or not running MySQL server
-				dbPortal.finallize();
+				dbPortal.finalize();
 				JOptionPane.showMessageDialog(this, "  !     MySQL   !", 
 						"  !", JOptionPane.ERROR_MESSAGE);
 				
@@ -152,11 +154,11 @@ public class databaseConnectWindow extends JFrame {
 					if (createNewDatabaseAndTables() == false) { //in case of fail do not close this window
 						
 						return;
-					}					
+					}
 				}
 				else {
 				
-					dbPortal.finallize();
+					dbPortal.finalize();
 					return;
 				}
 				
@@ -171,72 +173,79 @@ public class databaseConnectWindow extends JFrame {
 		
 		if (dbPortal.connect() == false) {
 			
-			JOptionPane.showMessageDialog(this, "  !     MySQL   !", 
+			JOptionPane.showMessageDialog(this, "   (1)!     MySQL   !", 
 					"  !", JOptionPane.ERROR_MESSAGE);			
-			dbPortal.finallize();
+			dbPortal.finalize();
 			return false;
 		}
 		
-		if (dbPortal.executeNonQuery("CREATE DATABASE " + mysqlDatabaseNameTextField.getText()) != 1) {
+		//FIXME prone??? to sql injection maybe??
+		
+		if (dbPortal.executeNonQuery("CREATE DATABASE " + mysqlDatabaseNameTextField.getText() + " COLLATE utf8_general_ci") != 1) {
 			
 			dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
-			dbPortal.disconnect();
-			dbPortal.finallize();
+			dbPortal.finalize();
 			JOptionPane.showMessageDialog(this, "      !\n     !", 
 					"     !", JOptionPane.ERROR_MESSAGE);
 			return false;
 		}
 		
-		if (dbPortal.executeNonQuery("CREATE TABLE operators (operator_id int NOT NULL AUTO_INCREMENT primary key," + 
-				"operator_username nvarchar(20) NOT NULL, operator_password nvarchar(20) NOT NULL," + 
-				"operator_first_name nvarchar(20) NOT NULL, operator_last_name nvarchar(20) NOT NULL)") != 1) {
+		dbPortal.setMySqlActiveDatabase(mysqlDatabaseNameTextField.getText());
+		dbPortal.disconnect();
+		
+		if (dbPortal.connect() == false) { //false positive for database creation
 			
-			dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+			dbPortal.setMySqlActiveDatabase("");
 			dbPortal.disconnect();
-			dbPortal.finallize();
-			JOptionPane.showMessageDialog(this, "        !\n     !",
-					"     !", JOptionPane.ERROR_MESSAGE);
+			
+			if (dbPortal.connect()) {
+				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+				dbPortal.disconnect();
+			}			
+			
+			JOptionPane.showMessageDialog(this, "   (2)!     MySQL   !", 
+					"  !", JOptionPane.ERROR_MESSAGE);			
+			dbPortal.finalize();
 			return false;
 		}
 		
-		if (dbPortal.executeNonQuery("CREATE TABLE orders (order_id int NOT NULL AUTO_INCREMENT primary key," + 
+		dbPortal.executeNonQuery("CREATE TABLE operators (operator_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"operator_username nvarchar(20) NOT NULL, operator_password nvarchar(64) NOT NULL," + 
+				"operator_first_name nvarchar(20) NOT NULL, operator_last_name nvarchar(20) NOT NULL)");
+		
+		dbPortal.executeNonQuery("CREATE TABLE orders (order_id int NOT NULL AUTO_INCREMENT primary key," + 
 				"order_time datetime NOT NULL, order_operator_id int NOT NULL," +
-				"CONSTRAINT FK_OPERATORS FOREIGN KEY (order_operator_id) REFERENCES operators(operator_id) ON DELETE CASCADE ON UPDATE CASCADE)") != 1) {
-			
-			dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
-			dbPortal.disconnect();
-			dbPortal.finallize();
-			JOptionPane.showMessageDialog(this, "        !\n     !",
-					"     !", JOptionPane.ERROR_MESSAGE);
-			return false;
-		}
+				"CONSTRAINT FK_OPERATORS FOREIGN KEY (order_operator_id) REFERENCES operators(operator_id) ON DELETE CASCADE ON UPDATE CASCADE)");
 
-		if (dbPortal.executeNonQuery("CREATE TABLE products (product_id int NOT NULL AUTO_INCREMENT primary key," + 
-				"product_name nvarchar(30) NOT NULL, product_quantity int NOT NULL,	product_price decimal(10,2) NOT NULL)") != 1) {
-			
-			dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
-			dbPortal.disconnect();
-			dbPortal.finallize();
-			JOptionPane.showMessageDialog(this, "        !\n     !",
-					"     !", JOptionPane.ERROR_MESSAGE);
-			return false;
-		}
+		dbPortal.executeNonQuery("CREATE TABLE products (product_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"product_name nvarchar(30) NOT NULL, product_quantity int NOT NULL,	product_price decimal(10,2) NOT NULL)");
 
-		if (dbPortal.executeNonQuery("CREATE TABLE order_details (order_detail_id int NOT NULL AUTO_INCREMENT primary key," + 
+		dbPortal.executeNonQuery("CREATE TABLE order_details (order_detail_id int NOT NULL AUTO_INCREMENT primary key," + 
 				"order_detail_order_id int NOT NULL, order_detail_product_id int NOT NULL, " +
 				"order_detail_product_quantity int NOT NULL," +
 				"CONSTRAINT FK_ORDERS FOREIGN KEY (order_detail_order_id) REFERENCES orders(order_id) ON DELETE CASCADE ON UPDATE CASCADE," +
-				"CONSTRAINT FK_PRODUCTS FOREIGN KEY (order_detail_product_id) REFERENCES products(product_id) ON DELETE CASCADE ON UPDATE CASCADE)") != 1) {
-			
-			dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
-			dbPortal.disconnect();
-			dbPortal.finallize();
-			JOptionPane.showMessageDialog(this, "        !\n     !",
-					"     !", JOptionPane.ERROR_MESSAGE);
-			return false;
+				"CONSTRAINT FK_PRODUCTS FOREIGN KEY (order_detail_product_id) REFERENCES products(product_id) ON DELETE CASCADE ON UPDATE CASCADE)");
+		
+		/* for testing only; not needed any more
+		try {
+			if (dbPortal.executeNonQuery("INSERT INTO operators (operator_username, operator_password, operator_first_name, operator_last_name)" + 
+					" VALUES ('operator1', '" + Md5hashcalc.calculateMD5hash("operator1")  + "', '1', ' ')") != 1) {
+				
+				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+				dbPortal.disconnect();
+				dbPortal.finallize();
+				
+				JOptionPane.showMessageDialog(this, "       !\n     .", "      ", JOptionPane.ERROR_MESSAGE);
+				
+				return false;
+			}
 		}
+		catch (Exception ex) {
+			JOptionPane.showMessageDialog(this, "       MD5!", " ", 
+					JOptionPane.ERROR_MESSAGE);
+			System.exit(-1);
+		}*/
 		
 		return true;
-	}
-
+	}	
 }

programming_language: Java
filename: 70700e07a55d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,326 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.JButton;
+import javax.swing.WindowConstants;
+import javax.swing.border.TitledBorder;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserLoginWindow extends JFrame {
+
+	private final JPanel groupLoginPanel = new JPanel();
+	private final JPanel groupCreateNewUserPanel = new JPanel();
+	private final JLabel loginUsernameLabel = new JLabel();
+	private final JLabel loginPasswordLabel = new JLabel();
+	private final JButton loginButton = new JButton();
+	private final JTextField loginUsernameTextField = new JTextField();
+	private final JPasswordField loginPasswordPasswordField = new JPasswordField();
+	private final JLabel newUsernameLabel = new JLabel();
+	private final JLabel newPasswordLabel = new JLabel();
+	private final JLabel newUserFirstNameLabel = new JLabel();
+	private final JLabel newUserLastNameLabel = new JLabel();
+	private final JButton createNewOperatorButton = new JButton();
+	private final JTextField newUsernameTextField = new JTextField();
+	private final JTextField newFirstNameTextField = new JTextField();
+	private final JPasswordField newPasswordPasswordField = new JPasswordField();
+	private final JTextField newLastNameTextField = new JTextField();
+	
+	public static int loggedUserId = -1;
+	public static String loggedUserNames = "";
+	
+	private final JLabel newPasswordAgainLabel = new JLabel();
+	private final JPasswordField newPasswordPasswordAgainField = new JPasswordField();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserLoginWindow frame = new operatorUserLoginWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserLoginWindow() {
+		super();
+		setBounds(100, 100, 518, 242);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setTitle("  ");
+		setName("operatorLoginWindow");
+		setResizable(false);
+		setAlwaysOnTop(true);
+		
+		getContentPane().add(groupLoginPanel);
+		groupLoginPanel.setLayout(null);
+		groupLoginPanel.setBorder(new TitledBorder(null, ":", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupLoginPanel.setBounds(10, 10, 243, 133);
+		
+		groupLoginPanel.add(loginUsernameLabel);
+		loginUsernameLabel.setText(":");
+		loginUsernameLabel.setBounds(10, 31, 80, 16);
+		
+		groupLoginPanel.add(loginPasswordLabel);
+		loginPasswordLabel.setText(":");
+		loginPasswordLabel.setBounds(10, 53, 80, 16);
+		
+		groupLoginPanel.add(loginButton);
+		loginButton.addActionListener(new LoginButtonActionListener());
+		loginButton.setText("");
+		loginButton.setBounds(127, 93, 106, 26);
+		
+		groupLoginPanel.add(loginUsernameTextField);
+		loginUsernameTextField.setBounds(96, 29, 137, 20);
+		
+		groupLoginPanel.add(loginPasswordPasswordField);
+		loginPasswordPasswordField.setBounds(96, 51, 137, 20);
+		
+		getContentPane().add(groupCreateNewUserPanel);
+		groupCreateNewUserPanel.setLayout(null);
+		groupCreateNewUserPanel.setBorder(new TitledBorder(null, " :", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupCreateNewUserPanel.setBounds(259, 10, 243, 194);
+		
+		groupCreateNewUserPanel.add(newUsernameLabel);
+		newUsernameLabel.setText(" :");
+		newUsernameLabel.setBounds(10, 32, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordLabel);
+		newPasswordLabel.setText(":");
+		newPasswordLabel.setBounds(10, 54, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserFirstNameLabel);
+		newUserFirstNameLabel.setText(":");
+		newUserFirstNameLabel.setBounds(10, 98, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserLastNameLabel);
+		newUserLastNameLabel.setText(":");
+		newUserLastNameLabel.setBounds(10, 120, 95, 16);
+		
+		groupCreateNewUserPanel.add(createNewOperatorButton);
+		createNewOperatorButton.addActionListener(new CreateNewOperatorButtonActionListener());
+		createNewOperatorButton.setText("");
+		createNewOperatorButton.setBounds(127, 158, 106, 26);
+		
+		groupCreateNewUserPanel.add(newUsernameTextField);
+		newUsernameTextField.setBounds(111, 30, 122, 20);
+		
+		groupCreateNewUserPanel.add(newFirstNameTextField);
+		newFirstNameTextField.setBounds(111, 96, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordField);
+		newPasswordPasswordField.setBounds(111, 52, 122, 20);
+		
+		groupCreateNewUserPanel.add(newLastNameTextField);
+		newLastNameTextField.setBounds(111, 118, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordAgainLabel);
+		newPasswordAgainLabel.setText(" :");
+		newPasswordAgainLabel.setBounds(10, 76, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordAgainField);
+		newPasswordPasswordAgainField.setBounds(111, 75, 122, 20);
+	}
+	private class LoginButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			loginButton_actionPerformed(e);
+		}
+	}
+	private class CreateNewOperatorButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			createNewOperatorButton_actionPerformed(e);
+		}
+	}
+	
+	protected void loginButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				String password = "";
+				
+				char[] pass = loginPasswordPasswordField.getPassword();
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				//FIXME prone to sql injection
+				
+				ResultSet rs = null;
+				
+				try {				
+					
+					rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_id, operator_first_name, operator_last_name FROM operators WHERE" + 
+						" operator_username='" + loginUsernameTextField.getText() + "' AND operator_password='" +
+						Md5hashcalc.calculateMD5hash(password) + "'");
+				}
+				catch (Exception ex) {
+					System.exit(-1);
+				}
+				
+				if (rs != null) {
+					
+					try {
+						
+						loggedUserId = rs.getInt(1);
+						loggedUserNames = rs.getString(2) + " " + rs.getString(3);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", "  ", 
+								JOptionPane.ERROR_MESSAGE);
+						return;
+					}
+					
+					this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+				}
+				else {
+					JOptionPane.showMessageDialog(this, "   !", "  ", 
+							JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}		
+	}
+	
+	protected void createNewOperatorButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				char[] pass = newPasswordPasswordField.getPassword();
+				String password = "";
+				String encryptedPassword = "";
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				char[] pass2 = newPasswordPasswordAgainField.getPassword();
+				
+				if (pass.length == pass2.length) {
+				
+						for (int i = 0; i < pass.length; i++) {
+							
+							if (pass[i] != pass2[i]) {
+								
+								JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+								return;
+							}
+						}
+				}
+				else {
+				
+					JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+					return;
+				}
+								
+				if ((newUsernameTextField.getText().length() > 3) && (password.length() > 3) && 
+						(newFirstNameTextField.getText().length() > 3) && (newLastNameTextField.getText().length() > 3)) {
+					
+					try {
+						
+						encryptedPassword = Md5hashcalc.calculateMD5hash(password);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", " ", JOptionPane.ERROR_MESSAGE);
+						System.exit(-1);
+					}
+					
+					//FIXME prone to sql injection
+					ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT COUNT(*) FROM operators WHERE operator_username='" +
+							newUsernameTextField.getText() + "'");
+					
+					int usersCount = 0;
+					try {
+						
+						usersCount = rs.getInt(1);
+					}
+					catch (Exception ex) {						
+					}					
+					
+					if ((databaseConnectWindow.dbPortal.getLastError() == null) && (usersCount == 0)) {						
+						
+						//no such existing username so now we create it
+						//FIXME prone to sql injection
+						if (databaseConnectWindow.dbPortal.executeNonQuery("INSERT INTO operators(operator_username, operator_password, " +
+								"operator_first_name, operator_last_name) VALUES('" + newUsernameTextField.getText() + "', '" +
+								encryptedPassword + "', '" + newFirstNameTextField.getText() + "', '" + newLastNameTextField.getText() + "')") != 1) {
+							
+							JOptionPane.showMessageDialog(this, "     !", "", JOptionPane.ERROR_MESSAGE);
+						}
+						else { //everything ok so login now
+							
+							loginUsernameTextField.setText(newUsernameTextField.getText());
+							loginPasswordPasswordField.setText(password);
+							loginButton_actionPerformed(null);
+						}						
+					}
+					else {
+						
+						if (databaseConnectWindow.dbPortal.getLastError() != null) {
+							
+							JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);							
+						}
+						else {
+							
+							JOptionPane.showMessageDialog(this, "      .", "   ", JOptionPane.ERROR_MESSAGE);							
+						}
+					}					
+				}
+				else {
+					
+					JOptionPane.showMessageDialog(this, "    - !", " ", JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+		}		
+	}
+
+}

programming_language: Java
filename: 40886ce5fe5c00121f22d5fb8a5d79d9
change_type: ModificationType.DELETE
diff: @@ -1,103 +0,0 @@
-import java.awt.EventQueue;
-import javax.swing.JButton;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPasswordField;
-import javax.swing.JTextField;
-
-import database_management.MySQLdbManager;
-import md5_calculator.Md5hashcalc;
-
-public class operatorUserSettingsWindow extends JFrame {
-
-	private final JLabel usernameLabel = new JLabel();
-	private final JLabel passwordLabel = new JLabel();
-	private final JLabel passwordAgainLabel = new JLabel();
-	private final JLabel nameLabel = new JLabel();
-	private final JLabel lastNameLabel = new JLabel();
-	private final JButton updateButton = new JButton();
-	private final JTextField firstNameTextField = new JTextField();
-	private final JTextField lastNameTextField = new JTextField();
-	private final JPasswordField passwordPasswordField = new JPasswordField();
-	private final JPasswordField passwordAgainPasswordField = new JPasswordField();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public operatorUserSettingsWindow() {
-		super();
-		setBounds(100, 100, 314, 214);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//
-	}
-	private void jbInit() throws Exception {
-		getContentPane().setLayout(null);
-		setTitle("  ");
-		setName("operatorUserSettings");
-		
-		getContentPane().add(usernameLabel);
-		usernameLabel.setText(":");
-		usernameLabel.setBounds(10, 0, 97, 16);
-		
-		getContentPane().add(passwordLabel);
-		passwordLabel.setText(":");
-		passwordLabel.setBounds(10, 76, 97, 16);
-		
-		getContentPane().add(passwordAgainLabel);
-		passwordAgainLabel.setText(" :");
-		passwordAgainLabel.setBounds(10, 95, 97, 16);
-		
-		getContentPane().add(nameLabel);
-		nameLabel.setText(":");
-		nameLabel.setBounds(10, 32, 97, 16);
-		
-		getContentPane().add(lastNameLabel);
-		lastNameLabel.setText(":");
-		lastNameLabel.setBounds(10, 54, 97, 16);
-		
-		getContentPane().add(updateButton);
-		updateButton.setText("");
-		updateButton.setBounds(93, 140, 106, 26);
-		
-		getContentPane().add(firstNameTextField);
-		firstNameTextField.setBounds(113, 30, 175, 20);
-		
-		getContentPane().add(lastNameTextField);
-		lastNameTextField.setBounds(113, 52, 175, 20);
-		
-		getContentPane().add(passwordPasswordField);
-		passwordPasswordField.setBounds(113, 74, 175, 20);
-		
-		getContentPane().add(passwordAgainPasswordField);
-		passwordAgainPasswordField.setBounds(113, 97, 175, 20);
-		
-		getCurrentUserData();
-	}
-	
-	private void getCurrentUserData() {
-		
-	}
-
-}

programming_language: unknown
filename: 50c3d407585b0012179f93dc572b551d
change_type: ModificationType.DELETE
diff: @@ -1,171 +0,0 @@
-import java.awt.EventQueue;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.WindowEvent;
-
-import javax.swing.JButton;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPasswordField;
-import javax.swing.JTextField;
-import javax.swing.JOptionPane;
-
-import database_management.MySQLdbManager;
-
-public class databaseConnectWindow extends JFrame {
-
-	private final JLabel label = new JLabel();
-	private final JLabel label_1 = new JLabel();
-	private final JLabel label_2 = new JLabel();
-	private final JLabel label_3 = new JLabel();
-	private final JLabel label_4 = new JLabel();
-	private final JButton connectToDatabaseButton = new JButton();
-	private final JTextField mysqlServerAddressTextField = new JTextField();
-	private final JTextField mysqlPortTextField = new JTextField();
-	private final JTextField mysqlDatabaseNameTextField = new JTextField();
-	private final JTextField mysqlUsernameTextField = new JTextField();
-	private final JPasswordField mysqlPasswordPasswordField = new JPasswordField();
-	public static MySQLdbManager dbPortal = null;
-	
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					databaseConnectWindow frame = new databaseConnectWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public databaseConnectWindow() {
-		super();
-		setBounds(100, 100, 384, 203);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//
-	}
-	private void jbInit() throws Exception {
-		getContentPane().setLayout(null);
-		setAlwaysOnTop(true);
-		setResizable(false);
-		setTitle("   ");
-		setName("databaseConnectWindowFrame");
-		
-		getContentPane().add(label);
-		label.setText("  MySQL :");
-		label.setBounds(10, 10, 165, 16);
-		
-		getContentPane().add(label_1);
-		label_1.setText("   :");
-		label_1.setBounds(10, 54, 165, 16);
-		
-		getContentPane().add(label_2);
-		label_2.setText(":");
-		label_2.setBounds(10, 32, 156, 16);
-		
-		getContentPane().add(label_3);
-		label_3.setText(" :");
-		label_3.setBounds(10, 76, 165, 16);
-		
-		getContentPane().add(label_4);
-		label_4.setText(":");
-		label_4.setBounds(10, 98, 156, 16);
-		
-		getContentPane().add(connectToDatabaseButton);
-		connectToDatabaseButton.addActionListener(new ConnectToDatabaseButtonActionListener());
-		connectToDatabaseButton.setText(" !");
-		connectToDatabaseButton.setBounds(132, 135, 106, 26);
-		
-		getContentPane().add(mysqlServerAddressTextField);
-		mysqlServerAddressTextField.setText("127.0.0.1");
-		mysqlServerAddressTextField.setBounds(181, 8, 185, 20);
-		
-		getContentPane().add(mysqlPortTextField);
-		mysqlPortTextField.setText("3306");
-		mysqlPortTextField.setBounds(181, 30, 91, 20);
-		
-		getContentPane().add(mysqlDatabaseNameTextField);
-		mysqlDatabaseNameTextField.setText("shop");
-		mysqlDatabaseNameTextField.setBounds(181, 52, 181, 20);
-		
-		getContentPane().add(mysqlUsernameTextField);
-		mysqlUsernameTextField.setText("root");
-		mysqlUsernameTextField.setBounds(181, 76, 180, 18);
-		
-		getContentPane().add(mysqlPasswordPasswordField);
-		mysqlPasswordPasswordField.setBounds(181, 96, 181, 20);
-	}
-	private class ConnectToDatabaseButtonActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			connectToDatabaseButton_actionPerformed(e);
-		}
-	}
-	protected void connectToDatabaseButton_actionPerformed(ActionEvent e) {
-		
-		String password = "";
-		
-		char [] pass = mysqlPasswordPasswordField.getPassword();
-		for (int i = 0; i < pass.length; i++) {
-			
-			password += pass[i];
-		}
-		
-		dbPortal = new MySQLdbManager(mysqlServerAddressTextField.getText(),
-				mysqlDatabaseNameTextField.getText(), Integer.parseInt(mysqlPortTextField.getText()),
-				mysqlUsernameTextField.getText(), password);		
-		
-		
-		if (dbPortal.connect() == false) { //now check for database name that is not existing
-			
-			dbPortal.setMySqlActiveDatabase("");
-			dbPortal.disconnect(); //just in case
-			
-			if (dbPortal.connect() == false) { //connection settings problem or not running MySQL server
-				dbPortal.finallize();
-				JOptionPane.showMessageDialog(this, "  !     MySQL   !", 
-						"  !", JOptionPane.ERROR_MESSAGE);
-				
-				return;
-			}
-			else { //will have to create new database
-				
-				if (JOptionPane.showConfirmDialog(this, "       : " + mysqlDatabaseNameTextField.getText() +
-						".\n  ?", "    ?", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
-					
-					
-				}
-				else {
-				
-					dbPortal.disconnect();
-					dbPortal.finallize();
-					return;
-				}
-				
-				this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
-			}			
-		}
-		
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
-	}
-	
-	private void createNewDatabaseAndTables() {
-		
-		
-	}
-
-}

programming_language: unknown
filename: b05af020b65d001211398853d386ea7d
change_type: ModificationType.ADD
diff: @@ -0,0 +1,248 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JButton;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserSettingsWindow extends JFrame {
+	private static final long serialVersionUID = 3004L;
+
+	private final JLabel usernameLabel = new JLabel();
+	private final JLabel passwordLabel = new JLabel();
+	private final JLabel passwordAgainLabel = new JLabel();
+	private final JLabel nameLabel = new JLabel();
+	private final JLabel lastNameLabel = new JLabel();
+	private final JButton updateButton = new JButton();
+	private final JButton deleteOperator = new JButton();
+	private final JTextField firstNameTextField = new JTextField();
+	private final JTextField lastNameTextField = new JTextField();
+	private final JPasswordField passwordPasswordField = new JPasswordField();
+	private final JPasswordField passwordAgainPasswordField = new JPasswordField();	
+	
+	private String currentOperatorPassword = "";
+	public static String operatorFirstNameLastNameCombination = "";	
+	
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserSettingsWindow() {
+		super();
+		setBounds(100, 100, 314, 255);
+		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setResizable(false);
+		setAlwaysOnTop(true);
+		setTitle("  ");
+		setName("operatorUserSettings");
+		
+		getContentPane().add(usernameLabel);
+		usernameLabel.setText(":");
+		usernameLabel.setBounds(10, 0, 278, 16);
+		
+		getContentPane().add(passwordLabel);
+		passwordLabel.setText(":");
+		passwordLabel.setBounds(10, 76, 97, 16);
+		
+		getContentPane().add(passwordAgainLabel);
+		passwordAgainLabel.setText(" :");
+		passwordAgainLabel.setBounds(10, 95, 97, 16);
+		
+		getContentPane().add(nameLabel);
+		nameLabel.setText(":");
+		nameLabel.setBounds(10, 32, 97, 16);
+		
+		getContentPane().add(lastNameLabel);
+		lastNameLabel.setText(":");
+		lastNameLabel.setBounds(10, 54, 97, 16);
+		
+		getContentPane().add(updateButton);
+		updateButton.addActionListener(new UpdateButtonActionListener());
+		updateButton.setText("");
+		updateButton.setBounds(90, 130, 137, 26);
+		
+		getContentPane().add(firstNameTextField);
+		firstNameTextField.setBounds(113, 30, 175, 20);
+		
+		getContentPane().add(lastNameTextField);
+		lastNameTextField.setBounds(113, 52, 175, 20);
+		
+		getContentPane().add(passwordPasswordField);
+		passwordPasswordField.setBounds(113, 74, 175, 20);
+		
+		getContentPane().add(passwordAgainPasswordField);
+		passwordAgainPasswordField.setBounds(113, 97, 175, 20);
+		
+		getCurrentUserData();
+		
+		getContentPane().add(deleteOperator);
+		deleteOperator.addActionListener(new DeleteOperatorActionListener());
+		deleteOperator.setText(" ");
+		deleteOperator.setBounds(90, 189, 137, 26);
+	}
+	
+	private void getCurrentUserData() {
+		
+		if (databaseConnectWindow.dbPortal == null) {
+			return;
+		}
+		if (databaseConnectWindow.dbPortal.isConnected() == false) {
+			return;
+		}
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_username, operator_password, " + 
+				"operator_first_name, operator_last_name FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId);
+		
+		if ((rs == null) || (databaseConnectWindow.dbPortal.getLastError() != null)) {
+			return;
+		}
+		
+		try {
+			
+			usernameLabel.setText(": " + rs.getString(1));
+			currentOperatorPassword = rs.getString(2);
+			firstNameTextField.setText(rs.getString(3));
+			lastNameTextField.setText(rs.getString(4));
+		}
+		catch (Exception ex) {			
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+	}
+	
+	private class UpdateButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			updateButton_actionPerformed(e);
+		}
+	}
+	private class DeleteOperatorActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			deleteOperator_actionPerformed(e);
+		}
+	}
+	protected void updateButton_actionPerformed(ActionEvent e) {
+		
+		char[] pass = passwordPasswordField.getPassword();
+		String password = "";
+		
+		for (int i = 0; i < pass.length; i++) {
+			
+			password += pass[i];
+		}
+		
+		char[] pass2 = passwordAgainPasswordField.getPassword();
+		String password2 = "";
+		
+		for (int j = 0; j < pass2.length; j++) {
+			
+			password2 += pass2[j];
+		}
+		
+		if (password.compareTo(password2) != 0) {
+			
+			JOptionPane.showMessageDialog(this, "  !", "    ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		if (password.length() > 3) { //password update will be performed too
+			
+			try {
+				
+				password = Md5hashcalc.calculateMD5hash(password);
+				currentOperatorPassword = password;
+			}
+			catch (Exception ex) {
+				
+				JOptionPane.showMessageDialog(this, "       \n      !", "    ", JOptionPane.ERROR_MESSAGE);
+			}			
+		}
+		else {
+			if (password.length() > 0) {
+				
+				JOptionPane.showMessageDialog(this, "     4 !", "    ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		
+		if ((firstNameTextField.getText().length() <= 3) || (lastNameTextField.getText().length() <= 3)) {
+			
+			JOptionPane.showMessageDialog(this, "    !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		if (databaseConnectWindow.dbPortal.executeParameterizedNonQuery("UPDATE operators SET operator_password=? " +
+				"operator_first_name=? operator_last_name=? WHERE operator_id=?", currentOperatorPassword, 
+				firstNameTextField.getText(), lastNameTextField.getText(), operatorUserLoginWindow.loggedUserId) != 1) {
+		
+			JOptionPane.showMessageDialog(this, "    !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+		operatorUserLoginWindow.loggedUserNames = operatorFirstNameLastNameCombination; //in case
+		
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
+	}
+	
+	protected void deleteOperator_actionPerformed(ActionEvent e) {
+		
+		//we can not delete not existing operator
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		if (JOptionPane.showConfirmDialog(this, "       \n" + 
+				"  ,    .\n\n\t?", "   ", 
+				JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+			
+			if (databaseConnectWindow.dbPortal.executeNonQuery("DELETE FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId) != 1) {
+
+				JOptionPane.showMessageDialog(this, "  !", "   ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+			
+			operatorUserLoginWindow.loggedUserId = -1;
+			this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+		}
+		
+		return;
+	}
+
+}

programming_language: Java
filename: 10122d7aa45d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,396 @@
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.EventQueue;
+import java.awt.Insets;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.awt.event.WindowListener;
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JSeparator;
+import javax.swing.SpringLayout;
+import javax.swing.border.EtchedBorder;
+import org.jdesktop.layout.GroupLayout;
+import org.jdesktop.layout.LayoutStyle;
+import com.jgoodies.forms.factories.FormFactory;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.ColumnSpec;
+import com.jgoodies.forms.layout.FormLayout;
+import com.jgoodies.forms.layout.RowSpec;
+
+
+public class mainWindow extends JFrame {
+
+	private final JMenuBar mainWindowMenu = new JMenuBar();
+	private final JMenu File = new JMenu();
+	private final JMenuItem FileConnectToDb = new JMenuItem();
+	private final JMenu Operations = new JMenu();
+	private final JMenu Help = new JMenu();
+	private final JMenuItem HelpAbout = new JMenuItem();
+	private final JMenuItem FileExit = new JMenuItem();
+	private static mainWindow mainWindowPointer;
+	
+	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
+	private final JPanel mainWindowStatusPanel = new JPanel();
+	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogin = new JButton();
+	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
+
+	private final JLabel mainWindowStatusPanelSeparatorLabel = new JLabel();
+	private final JLabel mainWindowStatusPanelSeparatorLabel2 = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogout = new JButton();
+	
+	private final JMenuItem operationsProductsManagement = new JMenuItem();
+	private final JMenuItem operationsOrdersManagement = new JMenuItem();
+	private final JMenuItem operationsNewOrder = new JMenuItem();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					mainWindow frame = new mainWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public mainWindow() {
+		super();
+		setBounds(100, 100, 682, 438);
+		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		mainWindowPointer = this;
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//		
+	}
+	private void jbInit() throws Exception {
+		addWindowListener(new ThisWindowListener());
+		getContentPane().setLayout(new BorderLayout());
+		setTitle("eShop 1.00 (C) 2013   &  ");
+		setName("mainWindow");
+		
+		setJMenuBar(mainWindowMenu);
+		
+		mainWindowMenu.add(File);
+		File.setText("");
+		
+		File.add(FileConnectToDb);
+		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
+		FileConnectToDb.setText("   ");
+		
+		File.add(FileDisconnectFromDb);
+		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
+		FileDisconnectFromDb.setText("   ");
+		FileDisconnectFromDb.setEnabled(false);
+
+		File.addSeparator();
+		
+		File.add(FileExit);
+		FileExit.addActionListener(new FileExitActionListener());
+		FileExit.setText("");
+		
+		mainWindowMenu.add(Operations);
+		Operations.setText("");
+		Operations.setEnabled(false);
+		
+		Operations.add(operationsNewOrder);
+		operationsNewOrder.addActionListener(new OperationsNewOrderActionListener());
+		operationsNewOrder.setText(" ");
+
+		Operations.addSeparator();
+		
+		Operations.add(operationsProductsManagement);
+		operationsProductsManagement.addActionListener(new OperationsProductsManagementActionListener());
+		operationsProductsManagement.setText("  ");
+		
+		Operations.add(operationsOrdersManagement);
+		operationsOrdersManagement.addActionListener(new OperationsOrdersManagementActionListener());
+		operationsOrdersManagement.setText("  ");
+		
+		mainWindowMenu.add(Help);
+		Help.setText("");
+		
+		Help.add(HelpAbout);
+		HelpAbout.addActionListener(new HelpAboutActionListener());
+		HelpAbout.setText("");
+		
+		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
+		mainWindowStatusPanel.setLayout(new FormLayout(
+			new ColumnSpec[] {
+				ColumnSpec.decode("149dlu"),
+				ColumnSpec.decode("72px"),
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC},
+			new RowSpec[] {
+				FormFactory.RELATED_GAP_ROWSPEC,
+				RowSpec.decode("16px")}));
+		mainWindowStatusPanel.setSize(666, 25);
+		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
+		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
+		
+		mainWindowStatusPanelLoggedUserLabel.setText(":");
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogin, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogin.addActionListener(new MainWindowStatusPanelLoggedUserLoginActionListener());
+		mainWindowStatusPanelLoggedUserLogin.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(4, 1, 1, 2, CellConstraints.CENTER, CellConstraints.DEFAULT));
+		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
+		mainWindowStatusPanelLoggedUserSettings.setMargin(new Insets(2, 14, 2, 14));
+		mainWindowStatusPanelLoggedUserSettings.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel, new CellConstraints(3, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel2, new CellConstraints(5, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel2.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogout, new CellConstraints(6, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogout.addActionListener(new MainWindowStatusPanelLoggedUserLogoutActionListener());
+		mainWindowStatusPanelLoggedUserLogout.setText("");
+		mainWindowStatusPanelSetEnabled(false);
+	}
+	
+	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
+		
+		Component[] comps = mainWindowStatusPanel.getComponents();
+		
+		for (int i = 0; i < comps.length; i++) {
+		
+			comps[i].setEnabled(enable);	
+		}
+		
+		mainWindowStatusPanel.setEnabled(enable);
+	}
+	
+	private class ThisWindowListener extends WindowAdapter {
+		public void windowClosing(WindowEvent e) {
+			this_windowClosing(e);
+		}
+	}
+	private class FileExitActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileExit_actionPerformed(e);
+		}
+	}
+	private class FileConnectToDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileConnectToDb_actionPerformed(e);
+		}
+	}
+	private class FileDisconnectFromDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileDisconnectFromDb_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogin_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLogoutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogout_actionPerformed(e);
+		}
+	}
+	private class HelpAboutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			helpAbout_actionPerformed(e);
+		}
+	}
+	private class OperationsProductsManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsProductsManagement_actionPerformed(e);
+		}
+	}
+	private class OperationsNewOrderActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsNewOrder_actionPerformed(e);
+		}
+	}
+	private class OperationsOrdersManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsOrdersManagement_actionPerformed(e);
+		}
+	}
+
+	protected void this_windowClosing(WindowEvent e) {
+		
+		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				databaseConnectWindow.dbPortal.finalize();
+			}
+		}
+		this.dispose();
+		//System.exit(0);
+	}
+	
+	protected void fileExit_actionPerformed(ActionEvent e) {
+
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
+		
+		databaseConnectWindow dcw = new databaseConnectWindow();
+		dcw.setVisible(true);
+		dcw.addWindowListener(databaseConnectWindowClosing);
+	}
+	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
+		
+        public void windowClosing(WindowEvent e) {
+            
+        	e.getWindow().dispose(); 
+        	
+        	if (databaseConnectWindow.dbPortal != null) {
+    			
+    			if (databaseConnectWindow.dbPortal.isConnected()) {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(true);
+    				mainWindowPointer.FileConnectToDb.setEnabled(false);
+    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
+    			}
+    			else {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(false);
+    			}
+    		}            
+        }
+    };
+    
+    ////////////////////////////////////////////////////////////////////////
+    
+	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			databaseConnectWindow.dbPortal.finalize();
+			
+			this.FileConnectToDb.setEnabled(true);
+			this.FileDisconnectFromDb.setEnabled(false);			
+			this.Operations.setEnabled(false);
+			this.mainWindowStatusPanelSetEnabled(false);	
+			this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			operatorUserLoginWindow.loggedUserId = -1;
+		}
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
+		
+		operatorUserLoginWindow oul = new operatorUserLoginWindow();
+		oul.setVisible(true);
+		oul.addWindowListener(operatorUserLoginWindowClosing);
+	}
+	private static WindowListener operatorUserLoginWindowClosing = new WindowAdapter() {
+
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.Operations.setEnabled(true);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserLoginWindow.loggedUserNames);
+			}
+			else {
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+		
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+		
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		operatorUserSettingsWindow ousw = new operatorUserSettingsWindow();
+		ousw.setVisible(true);
+		ousw.addWindowListener(operatorUserSettingsWindowClosing);
+	}
+	
+	private static WindowListener operatorUserSettingsWindowClosing = new WindowAdapter() {
+		
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserSettingsWindow.operatorFirstNameLastNameCombination);
+			}
+			else { //if operator was deleted
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogout_actionPerformed(ActionEvent e) {
+		
+		this.Operations.setEnabled(false);
+		this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+		operatorUserLoginWindow.loggedUserId = -1;
+	}
+	
+	protected void helpAbout_actionPerformed(ActionEvent e) {
+		
+		JOptionPane.showMessageDialog(this, "eShop ver.-1.00\n(C) 2013   &  ", "", JOptionPane.INFORMATION_MESSAGE);
+	}
+	
+	protected void operationsProductsManagement_actionPerformed(ActionEvent e) {
+		//TODO...		
+	}
+	protected void operationsNewOrder_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	protected void operationsOrdersManagement_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	
+	
+	
+	
+}

programming_language: Java
filename: 40e3e55f575b0012179f93dc572b551d
change_type: ModificationType.DELETE
diff: @@ -1,166 +0,0 @@
-import java.awt.EventQueue;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.WindowEvent;
-
-import javax.swing.JButton;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPasswordField;
-import javax.swing.JTextField;
-import javax.swing.JOptionPane;
-
-import database_management.MySQLdbManager;
-
-public class databaseConnectWindow extends JFrame {
-
-	private final JLabel label = new JLabel();
-	private final JLabel label_1 = new JLabel();
-	private final JLabel label_2 = new JLabel();
-	private final JLabel label_3 = new JLabel();
-	private final JLabel label_4 = new JLabel();
-	private final JButton connectToDatabaseButton = new JButton();
-	private final JTextField mysqlServerAddressTextField = new JTextField();
-	private final JTextField mysqlPortTextField = new JTextField();
-	private final JTextField mysqlDatabaseNameTextField = new JTextField();
-	private final JTextField mysqlUsernameTextField = new JTextField();
-	private final JPasswordField mysqlPasswordPasswordField = new JPasswordField();
-	public static MySQLdbManager dbPortal = null;
-	
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					databaseConnectWindow frame = new databaseConnectWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public databaseConnectWindow() {
-		super();
-		setBounds(100, 100, 384, 203);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//
-	}
-	private void jbInit() throws Exception {
-		getContentPane().setLayout(null);
-		setAlwaysOnTop(true);
-		setResizable(false);
-		setTitle("   ");
-		setName("databaseConnectWindowFrame");
-		
-		getContentPane().add(label);
-		label.setText("  MySQL :");
-		label.setBounds(10, 10, 165, 16);
-		
-		getContentPane().add(label_1);
-		label_1.setText("   :");
-		label_1.setBounds(10, 54, 165, 16);
-		
-		getContentPane().add(label_2);
-		label_2.setText(":");
-		label_2.setBounds(10, 32, 156, 16);
-		
-		getContentPane().add(label_3);
-		label_3.setText(" :");
-		label_3.setBounds(10, 76, 165, 16);
-		
-		getContentPane().add(label_4);
-		label_4.setText(":");
-		label_4.setBounds(10, 98, 156, 16);
-		
-		getContentPane().add(connectToDatabaseButton);
-		connectToDatabaseButton.addActionListener(new ConnectToDatabaseButtonActionListener());
-		connectToDatabaseButton.setText(" !");
-		connectToDatabaseButton.setBounds(132, 135, 106, 26);
-		
-		getContentPane().add(mysqlServerAddressTextField);
-		mysqlServerAddressTextField.setText("127.0.0.1");
-		mysqlServerAddressTextField.setBounds(181, 8, 185, 20);
-		
-		getContentPane().add(mysqlPortTextField);
-		mysqlPortTextField.setText("3306");
-		mysqlPortTextField.setBounds(181, 30, 91, 20);
-		
-		getContentPane().add(mysqlDatabaseNameTextField);
-		mysqlDatabaseNameTextField.setText("shop");
-		mysqlDatabaseNameTextField.setBounds(181, 52, 181, 20);
-		
-		getContentPane().add(mysqlUsernameTextField);
-		mysqlUsernameTextField.setText("root");
-		mysqlUsernameTextField.setBounds(181, 76, 180, 18);
-		
-		getContentPane().add(mysqlPasswordPasswordField);
-		mysqlPasswordPasswordField.setBounds(181, 96, 181, 20);
-	}
-	private class ConnectToDatabaseButtonActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			connectToDatabaseButton_actionPerformed(e);
-		}
-	}
-	protected void connectToDatabaseButton_actionPerformed(ActionEvent e) {
-		
-		String password = "";
-		
-		char [] pass = mysqlPasswordPasswordField.getPassword();
-		for (int i = 0; i < pass.length; i++) {
-			
-			password += pass[i];
-		}
-		
-		dbPortal = new MySQLdbManager(mysqlServerAddressTextField.getText(),
-				mysqlDatabaseNameTextField.getText(), Integer.parseInt(mysqlPortTextField.getText()),
-				mysqlUsernameTextField.getText(), password);		
-		
-		
-		if (dbPortal.connect() == false) { //now check for database name that is not existing
-			
-			dbPortal.setMySqlActiveDatabase("");
-			dbPortal.disconnect(); //just in case
-			
-			if (dbPortal.connect() == false) { //connection settings problem or not running MySQL server
-				dbPortal.finallize();
-				JOptionPane.showMessageDialog(this, "  !     MySQL   !", 
-						"  !", JOptionPane.ERROR_MESSAGE);
-				
-				return;
-			}
-			else { //will have to create new database
-				
-				if (JOptionPane.showConfirmDialog(this, "       : " + mysqlDatabaseNameTextField.getText() +
-						".\n  ?", "    ?", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
-					
-					
-				}
-				else {
-				
-					dbPortal.disconnect();
-					dbPortal.finallize();
-					return;
-				}
-				
-				this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
-			}			
-		}
-		
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
-	}
-
-}

programming_language: unknown
filename: b092ea0ab45c00121e34961e0ace9d22
change_type: ModificationType.DELETE
diff: @@ -1,35 +0,0 @@
-import java.awt.EventQueue;
-
-import javax.swing.JFrame;
-
-
-public class operatorUserLogin extends JFrame {
-
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					operatorUserLogin frame = new operatorUserLogin();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public operatorUserLogin() {
-		super();
-		setBounds(100, 100, 500, 375);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		//
-	}
-
-}

programming_language: unknown
filename: 1047046ea45d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,524 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+import java.lang.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return int the number of affected things
+	 */
+	
+	public int executeParameterizedNonQuery(String query, Object[] parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		//TODO...
+		// boolean - ok
+		// String  - ok
+		// char    - 
+		// byte    -
+		// short   -
+		// int     -
+		// long    -
+		// double  -
+		// float   -
+		// Date    -
+		// null ???
+		
+		try {
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i, parameters[i]);
+				
+				/*if (parameters[i] instanceof Boolean) {
+					
+					sqlStatement.setBoolean(i, ((Boolean)parameters[i]).booleanValue());
+					continue;
+				}
+				if (parameters[i] instanceof String) {
+					
+					sqlStatement.setString(i, ((String)parameters[i].toString()));
+					continue;
+				}
+				if (parameters[i] instanceof Character) {
+					
+					sqlStatement.set
+				}*/
+			}
+			
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: b0a2eb76a45d00121890bdcc27f78f62
change_type: ModificationType.RENAME
diff: @@ -2,8 +2,7 @@ import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.EventQueue;
-import java.awt.FlowLayout;
-import java.awt.GridLayout;
+import java.awt.Insets;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.awt.event.WindowListener;
@@ -32,6 +31,7 @@ import com.jgoodies.forms.layout.ColumnSpec;
 import com.jgoodies.forms.layout.FormLayout;
 import com.jgoodies.forms.layout.RowSpec;
 
+
 public class mainWindow extends JFrame {
 
 	private final JMenuBar mainWindowMenu = new JMenuBar();
@@ -45,9 +45,17 @@ public class mainWindow extends JFrame {
 	
 	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
 	private final JPanel mainWindowStatusPanel = new JPanel();
-	private final JPanel panel = new JPanel();
 	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogin = new JButton();
 	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
+
+	private final JLabel mainWindowStatusPanelSeparatorLabel = new JLabel();
+	private final JLabel mainWindowStatusPanelSeparatorLabel2 = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogout = new JButton();
+	
+	private final JMenuItem operationsProductsManagement = new JMenuItem();
+	private final JMenuItem operationsOrdersManagement = new JMenuItem();
+	private final JMenuItem operationsNewOrder = new JMenuItem();
 	/**
 	 * Launch the application
 	 * @param args
@@ -110,10 +118,25 @@ public class mainWindow extends JFrame {
 		Operations.setText("");
 		Operations.setEnabled(false);
 		
+		Operations.add(operationsNewOrder);
+		operationsNewOrder.addActionListener(new OperationsNewOrderActionListener());
+		operationsNewOrder.setText(" ");
+
+		Operations.addSeparator();
+		
+		Operations.add(operationsProductsManagement);
+		operationsProductsManagement.addActionListener(new OperationsProductsManagementActionListener());
+		operationsProductsManagement.setText("  ");
+		
+		Operations.add(operationsOrdersManagement);
+		operationsOrdersManagement.addActionListener(new OperationsOrdersManagementActionListener());
+		operationsOrdersManagement.setText("  ");
+		
 		mainWindowMenu.add(Help);
 		Help.setText("");
 		
 		Help.add(HelpAbout);
+		HelpAbout.addActionListener(new HelpAboutActionListener());
 		HelpAbout.setText("");
 		
 		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
@@ -121,6 +144,10 @@ public class mainWindow extends JFrame {
 			new ColumnSpec[] {
 				ColumnSpec.decode("149dlu"),
 				ColumnSpec.decode("72px"),
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
 				FormFactory.DEFAULT_COLSPEC},
 			new RowSpec[] {
 				FormFactory.RELATED_GAP_ROWSPEC,
@@ -132,9 +159,24 @@ public class mainWindow extends JFrame {
 		mainWindowStatusPanelLoggedUserLabel.setText(":");
 		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
 		
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogin, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogin.addActionListener(new MainWindowStatusPanelLoggedUserLoginActionListener());
+		mainWindowStatusPanelLoggedUserLogin.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(4, 1, 1, 2, CellConstraints.CENTER, CellConstraints.DEFAULT));
 		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
-		mainWindowStatusPanelLoggedUserSettings.setText("");
+		mainWindowStatusPanelLoggedUserSettings.setMargin(new Insets(2, 14, 2, 14));
+		mainWindowStatusPanelLoggedUserSettings.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel, new CellConstraints(3, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel2, new CellConstraints(5, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel2.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogout, new CellConstraints(6, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogout.addActionListener(new MainWindowStatusPanelLoggedUserLogoutActionListener());
+		mainWindowStatusPanelLoggedUserLogout.setText("");
 		mainWindowStatusPanelSetEnabled(false);
 	}
 	
@@ -170,11 +212,41 @@ public class mainWindow extends JFrame {
 			fileDisconnectFromDb_actionPerformed(e);
 		}
 	}
+	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogin_actionPerformed(e);
+		}
+	}
 	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
 		public void actionPerformed(ActionEvent e) {
 			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
 		}
 	}
+	private class MainWindowStatusPanelLoggedUserLogoutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogout_actionPerformed(e);
+		}
+	}
+	private class HelpAboutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			helpAbout_actionPerformed(e);
+		}
+	}
+	private class OperationsProductsManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsProductsManagement_actionPerformed(e);
+		}
+	}
+	private class OperationsNewOrderActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsNewOrder_actionPerformed(e);
+		}
+	}
+	private class OperationsOrdersManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsOrdersManagement_actionPerformed(e);
+		}
+	}
 
 	protected void this_windowClosing(WindowEvent e) {
 		
@@ -184,8 +256,7 @@ public class mainWindow extends JFrame {
 			
 			if (databaseConnectWindow.dbPortal.isConnected()) {
 				
-				databaseConnectWindow.dbPortal.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
+				databaseConnectWindow.dbPortal.finalize();
 			}
 		}
 		this.dispose();
@@ -194,14 +265,13 @@ public class mainWindow extends JFrame {
 	
 	protected void fileExit_actionPerformed(ActionEvent e) {
 
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
 	}
 	
 	////////////////////////////////////////////////////////////////////////
 	
 	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
 		
-		//databaseConnectWindow.main(null);
 		databaseConnectWindow dcw = new databaseConnectWindow();
 		dcw.setVisible(true);
 		dcw.addWindowListener(databaseConnectWindowClosing);
@@ -234,16 +304,20 @@ public class mainWindow extends JFrame {
 		
 		if (databaseConnectWindow.dbPortal != null) {
 			
-			databaseConnectWindow.dbPortal.finallize();
+			databaseConnectWindow.dbPortal.finalize();
 			
 			this.FileConnectToDb.setEnabled(true);
 			this.FileDisconnectFromDb.setEnabled(false);			
 			this.Operations.setEnabled(false);
-			this.mainWindowStatusPanelSetEnabled(false);			
+			this.mainWindowStatusPanelSetEnabled(false);	
+			this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			operatorUserLoginWindow.loggedUserId = -1;
 		}
 	}
 	
-	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
 		
 		operatorUserLoginWindow oul = new operatorUserLoginWindow();
 		oul.setVisible(true);
@@ -255,12 +329,69 @@ public class mainWindow extends JFrame {
 			if (operatorUserLoginWindow.loggedUserId != -1) {
 				
 				mainWindowPointer.Operations.setEnabled(true);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserLoginWindow.loggedUserNames);
 			}
 			else {
 				
 				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
 			}
 		}
+	};
+		
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+		
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		operatorUserSettingsWindow ousw = new operatorUserSettingsWindow();
+		ousw.setVisible(true);
+		ousw.addWindowListener(operatorUserSettingsWindowClosing);
+	}
+	
+	private static WindowListener operatorUserSettingsWindowClosing = new WindowAdapter() {
+		
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserSettingsWindow.operatorFirstNameLastNameCombination);
+			}
+			else { //if operator was deleted
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogout_actionPerformed(ActionEvent e) {
+		
+		this.Operations.setEnabled(false);
+		this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+		operatorUserLoginWindow.loggedUserId = -1;
+	}
+	
+	protected void helpAbout_actionPerformed(ActionEvent e) {
+		
+		JOptionPane.showMessageDialog(this, "eShop ver.-1.00\n(C) 2013   &  ", "", JOptionPane.INFORMATION_MESSAGE);
+	}
+	
+	protected void operationsProductsManagement_actionPerformed(ActionEvent e) {
+		//TODO...		
+	}
+	protected void operationsNewOrder_actionPerformed(ActionEvent e) {
+		//TODO...
 	}
+	protected void operationsOrdersManagement_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	
+	
+	
 	
 }

programming_language: Java
filename: b0d63c8da55c00121e34961e0ace9d22
change_type: ModificationType.DELETE
diff: @@ -1,223 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.EventQueue;
-import java.awt.FlowLayout;
-import java.awt.GridLayout;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSeparator;
-import javax.swing.SpringLayout;
-import javax.swing.border.BevelBorder;
-import javax.swing.border.EtchedBorder;
-import org.jdesktop.layout.GroupLayout;
-import org.jdesktop.layout.LayoutStyle;
-import com.jgoodies.forms.factories.FormFactory;
-import com.jgoodies.forms.layout.CellConstraints;
-import com.jgoodies.forms.layout.ColumnSpec;
-import com.jgoodies.forms.layout.FormLayout;
-import com.jgoodies.forms.layout.RowSpec;
-
-public class mainWindow extends JFrame {
-
-	private final JMenuBar mainWindowMenu = new JMenuBar();
-	private final JMenu File = new JMenu();
-	private final JMenuItem FileConnectToDb = new JMenuItem();
-	private final JMenu Operations = new JMenu();
-	private final JMenu Help = new JMenu();
-	private final JMenuItem HelpAbout = new JMenuItem();
-	private final JMenuItem FileExit = new JMenuItem();
-	private static mainWindow mainWindowPointer;
-	
-	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
-	private final JPanel mainWindowStatusPanel = new JPanel();
-	private final JPanel panel = new JPanel();
-	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
-	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					mainWindow frame = new mainWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public mainWindow() {
-		super();
-		setBounds(100, 100, 682, 438);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		mainWindowPointer = this;
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//		
-	}
-	private void jbInit() throws Exception {
-		addWindowListener(new ThisWindowListener());
-		getContentPane().setLayout(new BorderLayout());
-		setTitle("eShop 1.00 (C) 2013   &  ");
-		setName("mainWindow");
-		
-		setJMenuBar(mainWindowMenu);
-		
-		mainWindowMenu.add(File);
-		File.setText("");
-		
-		File.add(FileConnectToDb);
-		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
-		FileConnectToDb.setText("   ");
-		
-		File.add(FileDisconnectFromDb);
-		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
-		FileDisconnectFromDb.setText("   ");
-		FileDisconnectFromDb.setEnabled(false);
-
-		File.addSeparator();
-		
-		File.add(FileExit);
-		FileExit.addActionListener(new FileExitActionListener());
-		FileExit.setText("");
-		
-		mainWindowMenu.add(Operations);
-		Operations.setText("");
-		Operations.setEnabled(false);
-		
-		mainWindowMenu.add(Help);
-		Help.setText("");
-		
-		Help.add(HelpAbout);
-		HelpAbout.setText("");
-		
-		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
-		mainWindowStatusPanel.setLayout(new FormLayout(
-			new ColumnSpec[] {
-				ColumnSpec.decode("149dlu"),
-				ColumnSpec.decode("72px"),
-				FormFactory.DEFAULT_COLSPEC},
-			new RowSpec[] {
-				FormFactory.RELATED_GAP_ROWSPEC,
-				RowSpec.decode("16px")}));
-		mainWindowStatusPanel.setSize(666, 25);
-		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
-		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
-		
-		mainWindowStatusPanelLoggedUserLabel.setText(":");
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
-		
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(2, 1, 1, 2));
-		mainWindowStatusPanelLoggedUserSettings.setText("");
-		mainWindowStatusPanel.setEnabled(false);
-	}
-	
-	private class ThisWindowListener extends WindowAdapter {
-		public void windowClosing(WindowEvent e) {
-			this_windowClosing(e);
-		}
-	}
-	private class FileExitActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileExit_actionPerformed(e);
-		}
-	}
-	private class FileConnectToDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileConnectToDb_actionPerformed(e);
-		}
-	}
-	private class FileDisconnectFromDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileDisconnectFromDb_actionPerformed(e);
-		}
-	}
-
-	protected void this_windowClosing(WindowEvent e) {
-		
-		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			if (databaseConnectWindow.dbPortal.isConnected()) {
-				
-				databaseConnectWindow.dbPortal.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
-			}
-		}
-		this.dispose();
-		//System.exit(0);
-	}
-	
-	protected void fileExit_actionPerformed(ActionEvent e) {
-
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
-	}
-	
-	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
-		
-		//databaseConnectWindow.main(null);
-		databaseConnectWindow dcw = new databaseConnectWindow();
-		dcw.setVisible(true);
-		dcw.addWindowListener(databaseConnectWindowClosing);
-	}
-	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
-		
-        public void windowClosing(WindowEvent e) {
-            
-        	e.getWindow().dispose(); 
-        	
-        	if (databaseConnectWindow.dbPortal != null) {
-    			
-    			if (databaseConnectWindow.dbPortal.isConnected()) {
-    				
-    				//FIXME mainWindowPointer.Operations.setEnabled(true);
-    				mainWindowPointer.mainWindowStatusPanel.setEnabled(true);
-    				mainWindowPointer.FileConnectToDb.setEnabled(false);
-    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
-    			}
-    			else {
-    				//FIXME mainWindowPointer.Operations.setEnabled(false);
-    				mainWindowPointer.mainWindowStatusPanel.setEnabled(false);
-    			}
-    		}            
-        }
-    };
-	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			databaseConnectWindow.dbPortal.finallize();
-			
-			this.FileConnectToDb.setEnabled(true);
-			this.FileDisconnectFromDb.setEnabled(false);			
-			this.Operations.setEnabled(false);
-			this.mainWindowStatusPanel.setEnabled(false);			
-		}
-	}
-	
-}

programming_language: unknown
filename: 3051c538b75d001211398853d386ea7d
change_type: ModificationType.ADD
diff: @@ -0,0 +1,260 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.WindowConstants;
+import javax.swing.JButton;
+import javax.swing.JOptionPane;
+
+import database_management.MySQLdbManager;
+
+public class databaseConnectWindow extends JFrame {
+	private static final long serialVersionUID = 3002L;
+
+	private final JLabel label = new JLabel();
+	private final JLabel label_1 = new JLabel();
+	private final JLabel label_2 = new JLabel();
+	private final JLabel label_3 = new JLabel();
+	private final JLabel label_4 = new JLabel();
+	private final JButton connectToDatabaseButton = new JButton();
+	private final JTextField mysqlServerAddressTextField = new JTextField();
+	private final JTextField mysqlPortTextField = new JTextField();
+	private final JTextField mysqlDatabaseNameTextField = new JTextField();
+	private final JTextField mysqlUsernameTextField = new JTextField();
+	private final JPasswordField mysqlPasswordPasswordField = new JPasswordField();
+	public static MySQLdbManager dbPortal = null;
+	
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() { 
+			public void run() {
+				try {
+					databaseConnectWindow frame = new databaseConnectWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});		
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public databaseConnectWindow() {
+		super();
+		setBounds(100, 100, 384, 203);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setAlwaysOnTop(true);
+		setResizable(false);
+		setTitle("   ");
+		setName("databaseConnectWindowFrame");
+		
+		getContentPane().add(label);
+		label.setText("  MySQL :");
+		label.setBounds(10, 10, 165, 16);
+		
+		getContentPane().add(label_1);
+		label_1.setText("   :");
+		label_1.setBounds(10, 54, 165, 16);
+		
+		getContentPane().add(label_2);
+		label_2.setText(":");
+		label_2.setBounds(10, 32, 156, 16);
+		
+		getContentPane().add(label_3);
+		label_3.setText(" :");
+		label_3.setBounds(10, 76, 165, 16);
+		
+		getContentPane().add(label_4);
+		label_4.setText(":");
+		label_4.setBounds(10, 98, 156, 16);
+		
+		getContentPane().add(connectToDatabaseButton);
+		connectToDatabaseButton.addActionListener(new ConnectToDatabaseButtonActionListener());
+		connectToDatabaseButton.setText(" !");
+		connectToDatabaseButton.setBounds(132, 135, 106, 26);
+		
+		getContentPane().add(mysqlServerAddressTextField);
+		mysqlServerAddressTextField.setText("127.0.0.1");
+		mysqlServerAddressTextField.setBounds(181, 8, 185, 20);
+		
+		getContentPane().add(mysqlPortTextField);
+		mysqlPortTextField.setText("3306");
+		mysqlPortTextField.setBounds(181, 30, 91, 20);
+		
+		getContentPane().add(mysqlDatabaseNameTextField);
+		mysqlDatabaseNameTextField.setText("shop");
+		mysqlDatabaseNameTextField.setBounds(181, 52, 181, 20);
+		
+		getContentPane().add(mysqlUsernameTextField);
+		mysqlUsernameTextField.setText("root");
+		mysqlUsernameTextField.setBounds(181, 76, 180, 18);
+		
+		getContentPane().add(mysqlPasswordPasswordField);
+		mysqlPasswordPasswordField.setBounds(181, 96, 181, 20);
+	}
+	private class ConnectToDatabaseButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			connectToDatabaseButton_actionPerformed(e);
+		}
+	}
+
+	protected void connectToDatabaseButton_actionPerformed(ActionEvent e) {
+		
+		String password = "";
+		
+		char [] pass = mysqlPasswordPasswordField.getPassword();
+		for (int i = 0; i < pass.length; i++) {
+			
+			password += pass[i];
+		}
+		
+		dbPortal = new MySQLdbManager(mysqlServerAddressTextField.getText(),
+				mysqlDatabaseNameTextField.getText(), Integer.parseInt(mysqlPortTextField.getText()),
+				mysqlUsernameTextField.getText(), password);		
+		
+		
+		if (dbPortal.connect() == false) { //now check for database name that is not existing
+			
+			dbPortal.setMySqlActiveDatabase("");
+			dbPortal.disconnect(); //just in case
+			
+			if (dbPortal.connect() == false) { //connection settings problem or not running MySQL server
+				dbPortal.finalize();
+				JOptionPane.showMessageDialog(this, "  !     MySQL   !", 
+						"  !", JOptionPane.ERROR_MESSAGE);
+				
+				return;
+			}
+			else { //will have to create new database
+				
+				dbPortal.disconnect();
+				
+				if (JOptionPane.showConfirmDialog(this, "       : " + mysqlDatabaseNameTextField.getText() +
+						".\n  ?", "    ?", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+					
+					if (createNewDatabaseAndTables() == false) { //in case of fail do not close this window
+						
+						return;
+					}
+				}
+				else {
+				
+					dbPortal.finalize();
+					return;
+				}
+				
+				this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+			}			
+		}
+		
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
+	}
+	
+	private boolean createNewDatabaseAndTables() {
+		
+		if (dbPortal.connect() == false) {
+			
+			JOptionPane.showMessageDialog(this, "   (1)!     MySQL   !", 
+					"  !", JOptionPane.ERROR_MESSAGE);			
+			dbPortal.finalize();
+			return false;
+		}
+		
+		//FIXME prone??? to sql injection maybe??
+		
+		if (dbPortal.executeParameterizedNonQuery("CREATE DATABASE ? COLLATE utf8_general_ci", mysqlDatabaseNameTextField.getText()) != 1) {
+			
+			dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+			dbPortal.finalize();
+			JOptionPane.showMessageDialog(this, "      !\n     !", 
+					"     !", JOptionPane.ERROR_MESSAGE);
+			return false;
+		}
+
+		/*if (dbPortal.executeNonQuery("CREATE DATABASE " + mysqlDatabaseNameTextField.getText() + " COLLATE utf8_general_ci") != 1) {
+			
+			dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+			dbPortal.finalize();
+			JOptionPane.showMessageDialog(this, "      !\n     !", 
+					"     !", JOptionPane.ERROR_MESSAGE);
+			return false;
+		}/*
+		
+		dbPortal.setMySqlActiveDatabase(mysqlDatabaseNameTextField.getText());
+		dbPortal.disconnect();
+		
+		if (dbPortal.connect() == false) { //false positive for database creation
+			
+			dbPortal.setMySqlActiveDatabase("");
+			dbPortal.disconnect();
+			
+			if (dbPortal.connect()) {
+				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+				dbPortal.disconnect();
+			}			
+			
+			JOptionPane.showMessageDialog(this, "   (2)!     MySQL   !", 
+					"  !", JOptionPane.ERROR_MESSAGE);			
+			dbPortal.finalize();
+			return false;
+		}
+		
+		dbPortal.executeNonQuery("CREATE TABLE operators (operator_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"operator_username nvarchar(20) NOT NULL, operator_password nvarchar(64) NOT NULL," + 
+				"operator_first_name nvarchar(20) NOT NULL, operator_last_name nvarchar(20) NOT NULL)");
+		
+		dbPortal.executeNonQuery("CREATE TABLE orders (order_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"order_time datetime NOT NULL, order_operator_id int NOT NULL," +
+				"CONSTRAINT FK_OPERATORS FOREIGN KEY (order_operator_id) REFERENCES operators(operator_id) ON DELETE CASCADE ON UPDATE CASCADE)");
+
+		dbPortal.executeNonQuery("CREATE TABLE products (product_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"product_name nvarchar(30) NOT NULL, product_quantity int NOT NULL,	product_price decimal(10,2) NOT NULL)");
+
+		dbPortal.executeNonQuery("CREATE TABLE order_details (order_detail_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"order_detail_order_id int NOT NULL, order_detail_product_id int NOT NULL, " +
+				"order_detail_product_quantity int NOT NULL," +
+				"CONSTRAINT FK_ORDERS FOREIGN KEY (order_detail_order_id) REFERENCES orders(order_id) ON DELETE CASCADE ON UPDATE CASCADE," +
+				"CONSTRAINT FK_PRODUCTS FOREIGN KEY (order_detail_product_id) REFERENCES products(product_id) ON DELETE CASCADE ON UPDATE CASCADE)");
+		
+		/* for testing only; not needed any more
+		try {
+			if (dbPortal.executeNonQuery("INSERT INTO operators (operator_username, operator_password, operator_first_name, operator_last_name)" + 
+					" VALUES ('operator1', '" + Md5hashcalc.calculateMD5hash("operator1")  + "', '1', ' ')") != 1) {
+				
+				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+				dbPortal.disconnect();
+				dbPortal.finallize();
+				
+				JOptionPane.showMessageDialog(this, "       !\n     .", "      ", JOptionPane.ERROR_MESSAGE);
+				
+				return false;
+			}
+		}
+		catch (Exception ex) {
+			JOptionPane.showMessageDialog(this, "       MD5!", " ", 
+					JOptionPane.ERROR_MESSAGE);
+			System.exit(-1);
+		}*/
+		
+		return true;
+	}	
+}

programming_language: Java
filename: a0275544a35d00121890bdcc27f78f62
change_type: ModificationType.RENAME
diff: @@ -3,15 +3,16 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.WindowEvent;
 
-import javax.swing.JButton;
-
 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JPasswordField;
 import javax.swing.JTextField;
+import javax.swing.WindowConstants;
+import javax.swing.JButton;
 import javax.swing.JOptionPane;
 
 import database_management.MySQLdbManager;
+import md5_calculator.Md5hashcalc;
 
 public class databaseConnectWindow extends JFrame {
 
@@ -33,7 +34,7 @@ public class databaseConnectWindow extends JFrame {
 	 * @param args
 	 */
 	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
+		EventQueue.invokeLater(new Runnable() { 
 			public void run() {
 				try {
 					databaseConnectWindow frame = new databaseConnectWindow();
@@ -42,7 +43,7 @@ public class databaseConnectWindow extends JFrame {
 					e.printStackTrace();
 				}
 			}
-		});
+		});		
 	}
 
 	/**
@@ -51,7 +52,7 @@ public class databaseConnectWindow extends JFrame {
 	public databaseConnectWindow() {
 		super();
 		setBounds(100, 100, 384, 203);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
 		try {
 			jbInit();
 		} catch (Throwable e) {
@@ -115,6 +116,7 @@ public class databaseConnectWindow extends JFrame {
 			connectToDatabaseButton_actionPerformed(e);
 		}
 	}
+
 	protected void connectToDatabaseButton_actionPerformed(ActionEvent e) {
 		
 		String password = "";
@@ -136,7 +138,7 @@ public class databaseConnectWindow extends JFrame {
 			dbPortal.disconnect(); //just in case
 			
 			if (dbPortal.connect() == false) { //connection settings problem or not running MySQL server
-				dbPortal.finallize();
+				dbPortal.finalize();
 				JOptionPane.showMessageDialog(this, "  !     MySQL   !", 
 						"  !", JOptionPane.ERROR_MESSAGE);
 				
@@ -153,11 +155,10 @@ public class databaseConnectWindow extends JFrame {
 						
 						return;
 					}
-					
 				}
 				else {
 				
-					dbPortal.finallize();
+					dbPortal.finalize();
 					return;
 				}
 				
@@ -170,16 +171,44 @@ public class databaseConnectWindow extends JFrame {
 	
 	private boolean createNewDatabaseAndTables() {
 		
-		dbPortal.setMySqlActiveDatabase("");
-		
 		if (dbPortal.connect() == false) {
 			
-			dbPortal.finallize();
+			JOptionPane.showMessageDialog(this, "   (1)!     MySQL   !", 
+					"  !", JOptionPane.ERROR_MESSAGE);			
+			dbPortal.finalize();
+			return false;
+		}
+		
+		if (dbPortal.executeNonQuery("CREATE DATABASE " + mysqlDatabaseNameTextField.getText() + " COLLATE utf8_general_ci") != 1) {
+			
+			dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+			dbPortal.finalize();
+			JOptionPane.showMessageDialog(this, "      !\n     !", 
+					"     !", JOptionPane.ERROR_MESSAGE);
+			return false;
+		}
+		
+		dbPortal.setMySqlActiveDatabase(mysqlDatabaseNameTextField.getText());
+		dbPortal.disconnect();
+		
+		if (dbPortal.connect() == false) { //false positive for database creation
+			
+			dbPortal.setMySqlActiveDatabase("");
+			dbPortal.disconnect();
+			
+			if (dbPortal.connect()) {
+				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+				dbPortal.disconnect();
+			}			
+			
+			JOptionPane.showMessageDialog(this, "   (2)!     MySQL   !", 
+					"  !", JOptionPane.ERROR_MESSAGE);			
+			dbPortal.finalize();
 			return false;
 		}
 		
 		dbPortal.executeNonQuery("CREATE TABLE operators (operator_id int NOT NULL AUTO_INCREMENT primary key," + 
-				"operator_username nvarchar(20) NOT NULL, operator_password nvarchar(20) NOT NULL," + 
+				"operator_username nvarchar(20) NOT NULL, operator_password nvarchar(64) NOT NULL," + 
 				"operator_first_name nvarchar(20) NOT NULL, operator_last_name nvarchar(20) NOT NULL)");
 		
 		dbPortal.executeNonQuery("CREATE TABLE orders (order_id int NOT NULL AUTO_INCREMENT primary key," + 
@@ -195,7 +224,26 @@ public class databaseConnectWindow extends JFrame {
 				"CONSTRAINT FK_ORDERS FOREIGN KEY (order_detail_order_id) REFERENCES orders(order_id) ON DELETE CASCADE ON UPDATE CASCADE," +
 				"CONSTRAINT FK_PRODUCTS FOREIGN KEY (order_detail_product_id) REFERENCES products(product_id) ON DELETE CASCADE ON UPDATE CASCADE)");
 		
+		/* for testing only; not needed any more
+		try {
+			if (dbPortal.executeNonQuery("INSERT INTO operators (operator_username, operator_password, operator_first_name, operator_last_name)" + 
+					" VALUES ('operator1', '" + Md5hashcalc.calculateMD5hash("operator1")  + "', '1', ' ')") != 1) {
+				
+				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+				dbPortal.disconnect();
+				dbPortal.finallize();
+				
+				JOptionPane.showMessageDialog(this, "       !\n     .", "      ", JOptionPane.ERROR_MESSAGE);
+				
+				return false;
+			}
+		}
+		catch (Exception ex) {
+			JOptionPane.showMessageDialog(this, "       MD5!", " ", 
+					JOptionPane.ERROR_MESSAGE);
+			System.exit(-1);
+		}*/
+		
 		return true;
-	}
-
+	}	
 }

programming_language: Java
filename: c05fc1fca35d00121890bdcc27f78f62
change_type: ModificationType.RENAME
diff: @@ -4,6 +4,7 @@ import java.awt.Dimension;
 import java.awt.EventQueue;
 import java.awt.FlowLayout;
 import java.awt.GridLayout;
+import java.awt.Insets;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.awt.event.WindowListener;
@@ -32,6 +33,8 @@ import com.jgoodies.forms.layout.ColumnSpec;
 import com.jgoodies.forms.layout.FormLayout;
 import com.jgoodies.forms.layout.RowSpec;
 
+import database_management.MySQLdbManager;
+
 public class mainWindow extends JFrame {
 
 	private final JMenuBar mainWindowMenu = new JMenuBar();
@@ -47,7 +50,16 @@ public class mainWindow extends JFrame {
 	private final JPanel mainWindowStatusPanel = new JPanel();
 	private final JPanel panel = new JPanel();
 	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogin = new JButton();
 	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
+
+	private final JLabel mainWindowStatusPanelSeparatorLabel = new JLabel();
+	private final JLabel mainWindowStatusPanelSeparatorLabel2 = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogout = new JButton();
+	
+	private final JMenuItem operationsProductsManagement = new JMenuItem();
+	private final JMenuItem operationsOrdersManagement = new JMenuItem();
+	private final JMenuItem operationsNewOrder = new JMenuItem();
 	/**
 	 * Launch the application
 	 * @param args
@@ -110,10 +122,25 @@ public class mainWindow extends JFrame {
 		Operations.setText("");
 		Operations.setEnabled(false);
 		
+		Operations.add(operationsNewOrder);
+		operationsNewOrder.addActionListener(new OperationsNewOrderActionListener());
+		operationsNewOrder.setText(" ");
+
+		Operations.addSeparator();
+		
+		Operations.add(operationsProductsManagement);
+		operationsProductsManagement.addActionListener(new OperationsProductsManagementActionListener());
+		operationsProductsManagement.setText("  ");
+		
+		Operations.add(operationsOrdersManagement);
+		operationsOrdersManagement.addActionListener(new OperationsOrdersManagementActionListener());
+		operationsOrdersManagement.setText("  ");
+		
 		mainWindowMenu.add(Help);
 		Help.setText("");
 		
 		Help.add(HelpAbout);
+		HelpAbout.addActionListener(new HelpAboutActionListener());
 		HelpAbout.setText("");
 		
 		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
@@ -121,6 +148,10 @@ public class mainWindow extends JFrame {
 			new ColumnSpec[] {
 				ColumnSpec.decode("149dlu"),
 				ColumnSpec.decode("72px"),
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
 				FormFactory.DEFAULT_COLSPEC},
 			new RowSpec[] {
 				FormFactory.RELATED_GAP_ROWSPEC,
@@ -132,9 +163,24 @@ public class mainWindow extends JFrame {
 		mainWindowStatusPanelLoggedUserLabel.setText(":");
 		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
 		
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogin, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogin.addActionListener(new MainWindowStatusPanelLoggedUserLoginActionListener());
+		mainWindowStatusPanelLoggedUserLogin.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(4, 1, 1, 2, CellConstraints.CENTER, CellConstraints.DEFAULT));
 		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
-		mainWindowStatusPanelLoggedUserSettings.setText("");
+		mainWindowStatusPanelLoggedUserSettings.setMargin(new Insets(2, 14, 2, 14));
+		mainWindowStatusPanelLoggedUserSettings.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel, new CellConstraints(3, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel2, new CellConstraints(5, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel2.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogout, new CellConstraints(6, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogout.addActionListener(new MainWindowStatusPanelLoggedUserLogoutActionListener());
+		mainWindowStatusPanelLoggedUserLogout.setText("");
 		mainWindowStatusPanelSetEnabled(false);
 	}
 	
@@ -170,11 +216,41 @@ public class mainWindow extends JFrame {
 			fileDisconnectFromDb_actionPerformed(e);
 		}
 	}
+	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogin_actionPerformed(e);
+		}
+	}
 	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
 		public void actionPerformed(ActionEvent e) {
 			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
 		}
 	}
+	private class MainWindowStatusPanelLoggedUserLogoutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogout_actionPerformed(e);
+		}
+	}
+	private class HelpAboutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			helpAbout_actionPerformed(e);
+		}
+	}
+	private class OperationsProductsManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsProductsManagement_actionPerformed(e);
+		}
+	}
+	private class OperationsNewOrderActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsNewOrder_actionPerformed(e);
+		}
+	}
+	private class OperationsOrdersManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsOrdersManagement_actionPerformed(e);
+		}
+	}
 
 	protected void this_windowClosing(WindowEvent e) {
 		
@@ -184,8 +260,7 @@ public class mainWindow extends JFrame {
 			
 			if (databaseConnectWindow.dbPortal.isConnected()) {
 				
-				databaseConnectWindow.dbPortal.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
+				databaseConnectWindow.dbPortal.finalize();
 			}
 		}
 		this.dispose();
@@ -194,14 +269,13 @@ public class mainWindow extends JFrame {
 	
 	protected void fileExit_actionPerformed(ActionEvent e) {
 
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
 	}
 	
 	////////////////////////////////////////////////////////////////////////
 	
 	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
 		
-		//databaseConnectWindow.main(null);
 		databaseConnectWindow dcw = new databaseConnectWindow();
 		dcw.setVisible(true);
 		dcw.addWindowListener(databaseConnectWindowClosing);
@@ -234,18 +308,20 @@ public class mainWindow extends JFrame {
 		
 		if (databaseConnectWindow.dbPortal != null) {
 			
-			databaseConnectWindow.dbPortal.finallize();
+			databaseConnectWindow.dbPortal.finalize();
 			
 			this.FileConnectToDb.setEnabled(true);
 			this.FileDisconnectFromDb.setEnabled(false);			
 			this.Operations.setEnabled(false);
-			this.mainWindowStatusPanelSetEnabled(false);			
+			this.mainWindowStatusPanelSetEnabled(false);	
+			this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			operatorUserLoginWindow.loggedUserId = -1;
 		}
 	}
 	
 	////////////////////////////////////////////////////////////////////////
 	
-	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
 		
 		operatorUserLoginWindow oul = new operatorUserLoginWindow();
 		oul.setVisible(true);
@@ -257,14 +333,69 @@ public class mainWindow extends JFrame {
 			if (operatorUserLoginWindow.loggedUserId != -1) {
 				
 				mainWindowPointer.Operations.setEnabled(true);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserLoginWindow.loggedUserNames);
 			}
 			else {
 				
 				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+		
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+		
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		operatorUserSettingsWindow ousw = new operatorUserSettingsWindow();
+		ousw.setVisible(true);
+		ousw.addWindowListener(operatorUserSettingsWindowClosing);
+	}
+	
+	private static WindowListener operatorUserSettingsWindowClosing = new WindowAdapter() {
+		
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserSettingsWindow.operatorFirstNameLastNameCombination);
+			}
+			else { //if operator was deleted
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
 			}
 		}
 	};
 	
 	////////////////////////////////////////////////////////////////////////
 	
+	protected void mainWindowStatusPanelLoggedUserLogout_actionPerformed(ActionEvent e) {
+		
+		this.Operations.setEnabled(false);
+		this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+		operatorUserLoginWindow.loggedUserId = -1;
+	}
+	
+	protected void helpAbout_actionPerformed(ActionEvent e) {
+		
+		JOptionPane.showMessageDialog(this, "eShop ver.-1.00\n(C) 2013   &  ", "", JOptionPane.INFORMATION_MESSAGE);
+	}
+	
+	protected void operationsProductsManagement_actionPerformed(ActionEvent e) {
+		//TODO...		
+	}
+	protected void operationsNewOrder_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	protected void operationsOrdersManagement_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	
+	
+	
+	
 }

programming_language: Java
filename: 404dcf53b35d001211398853d386ea7d
change_type: ModificationType.ADD
diff: @@ -0,0 +1,544 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return int the number of affected things
+	 */
+	
+	public int executeParameterizedNonQuery(String query, Object... parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i + 1, parameters[i]);
+			}
+			
+			sqlStatement.execute();
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Executes parameterized query and returns ResultSet with data. For SELECT...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeParameterizedQuery(String query, Object... parameters) { //executes query and returns ResultSet 
+		
+		PreparedStatement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i + 1, parameters[i]);
+			}
+			
+			result = sqlStatement.executeQuery();
+			
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: a0c32771a35d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,260 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.WindowConstants;
+import javax.swing.JButton;
+import javax.swing.JOptionPane;
+
+import database_management.MySQLdbManager;
+import md5_calculator.Md5hashcalc;
+
+public class databaseConnectWindow extends JFrame {
+
+	private final JLabel label = new JLabel();
+	private final JLabel label_1 = new JLabel();
+	private final JLabel label_2 = new JLabel();
+	private final JLabel label_3 = new JLabel();
+	private final JLabel label_4 = new JLabel();
+	private final JButton connectToDatabaseButton = new JButton();
+	private final JTextField mysqlServerAddressTextField = new JTextField();
+	private final JTextField mysqlPortTextField = new JTextField();
+	private final JTextField mysqlDatabaseNameTextField = new JTextField();
+	private final JTextField mysqlUsernameTextField = new JTextField();
+	private final JPasswordField mysqlPasswordPasswordField = new JPasswordField();
+	public static MySQLdbManager dbPortal = null;
+	
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() { 
+			public void run() {
+				try {
+					databaseConnectWindow frame = new databaseConnectWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});		
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public databaseConnectWindow() {
+		super();
+		setBounds(100, 100, 384, 203);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setAlwaysOnTop(true);
+		setResizable(false);
+		setTitle("   ");
+		setName("databaseConnectWindowFrame");
+		
+		getContentPane().add(label);
+		label.setText("  MySQL :");
+		label.setBounds(10, 10, 165, 16);
+		
+		getContentPane().add(label_1);
+		label_1.setText("   :");
+		label_1.setBounds(10, 54, 165, 16);
+		
+		getContentPane().add(label_2);
+		label_2.setText(":");
+		label_2.setBounds(10, 32, 156, 16);
+		
+		getContentPane().add(label_3);
+		label_3.setText(" :");
+		label_3.setBounds(10, 76, 165, 16);
+		
+		getContentPane().add(label_4);
+		label_4.setText(":");
+		label_4.setBounds(10, 98, 156, 16);
+		
+		getContentPane().add(connectToDatabaseButton);
+		connectToDatabaseButton.addActionListener(new ConnectToDatabaseButtonActionListener());
+		connectToDatabaseButton.setText(" !");
+		connectToDatabaseButton.setBounds(132, 135, 106, 26);
+		
+		getContentPane().add(mysqlServerAddressTextField);
+		mysqlServerAddressTextField.setText("127.0.0.1");
+		mysqlServerAddressTextField.setBounds(181, 8, 185, 20);
+		
+		getContentPane().add(mysqlPortTextField);
+		mysqlPortTextField.setText("3306");
+		mysqlPortTextField.setBounds(181, 30, 91, 20);
+		
+		getContentPane().add(mysqlDatabaseNameTextField);
+		mysqlDatabaseNameTextField.setText("shop");
+		mysqlDatabaseNameTextField.setBounds(181, 52, 181, 20);
+		
+		getContentPane().add(mysqlUsernameTextField);
+		mysqlUsernameTextField.setText("root");
+		mysqlUsernameTextField.setBounds(181, 76, 180, 18);
+		
+		getContentPane().add(mysqlPasswordPasswordField);
+		mysqlPasswordPasswordField.setBounds(181, 96, 181, 20);
+	}
+	private class ConnectToDatabaseButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			connectToDatabaseButton_actionPerformed(e);
+		}
+	}
+
+	protected void connectToDatabaseButton_actionPerformed(ActionEvent e) {
+		
+		String password = "";
+		
+		char [] pass = mysqlPasswordPasswordField.getPassword();
+		for (int i = 0; i < pass.length; i++) {
+			
+			password += pass[i];
+		}
+		
+		dbPortal = new MySQLdbManager(mysqlServerAddressTextField.getText(),
+				mysqlDatabaseNameTextField.getText(), Integer.parseInt(mysqlPortTextField.getText()),
+				mysqlUsernameTextField.getText(), password);		
+		
+		
+		if (dbPortal.connect() == false) { //now check for database name that is not existing
+			
+			dbPortal.setMySqlActiveDatabase("");
+			dbPortal.disconnect(); //just in case
+			
+			if (dbPortal.connect() == false) { //connection settings problem or not running MySQL server
+				dbPortal.finalize();
+				JOptionPane.showMessageDialog(this, "  !     MySQL   !", 
+						"  !", JOptionPane.ERROR_MESSAGE);
+				
+				return;
+			}
+			else { //will have to create new database
+				
+				dbPortal.disconnect();
+				
+				if (JOptionPane.showConfirmDialog(this, "       : " + mysqlDatabaseNameTextField.getText() +
+						".\n  ?", "    ?", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+					
+					if (createNewDatabaseAndTables() == false) { //in case of fail do not close this window
+						
+						return;
+					}
+				}
+				else {
+				
+					dbPortal.finalize();
+					return;
+				}
+				
+				this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+			}			
+		}
+		
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
+	}
+	
+	private boolean createNewDatabaseAndTables() {
+		
+		if (dbPortal.connect() == false) {
+			
+			JOptionPane.showMessageDialog(this, "   (1)!     MySQL   !", 
+					"  !", JOptionPane.ERROR_MESSAGE);			
+			dbPortal.finalize();
+			return false;
+		}
+		
+		//FIXME prone to sql injection
+		
+		if (dbPortal.executeParameterizedNonQuery("CREATE DATABASE ? COLLATE utf8_general_ci", mysqlDatabaseNameTextField.getText()) != 1) {
+			
+			dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+			dbPortal.finalize();
+			JOptionPane.showMessageDialog(this, "      !\n     !", 
+					"     !", JOptionPane.ERROR_MESSAGE);
+			return false;
+		}
+		
+		/*if (dbPortal.executeNonQuery("CREATE DATABASE " + mysqlDatabaseNameTextField.getText() + " COLLATE utf8_general_ci") != 1) {
+			
+			dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+			dbPortal.finalize();
+			JOptionPane.showMessageDialog(this, "      !\n     !", 
+					"     !", JOptionPane.ERROR_MESSAGE);
+			return false;
+		}*/
+		
+		dbPortal.setMySqlActiveDatabase(mysqlDatabaseNameTextField.getText());
+		dbPortal.disconnect();
+		
+		if (dbPortal.connect() == false) { //false positive for database creation
+			
+			dbPortal.setMySqlActiveDatabase("");
+			dbPortal.disconnect();
+			
+			if (dbPortal.connect()) {
+				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+				dbPortal.disconnect();
+			}			
+			
+			JOptionPane.showMessageDialog(this, "   (2)!     MySQL   !", 
+					"  !", JOptionPane.ERROR_MESSAGE);			
+			dbPortal.finalize();
+			return false;
+		}
+		
+		dbPortal.executeNonQuery("CREATE TABLE operators (operator_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"operator_username nvarchar(20) NOT NULL, operator_password nvarchar(64) NOT NULL," + 
+				"operator_first_name nvarchar(20) NOT NULL, operator_last_name nvarchar(20) NOT NULL)");
+		
+		dbPortal.executeNonQuery("CREATE TABLE orders (order_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"order_time datetime NOT NULL, order_operator_id int NOT NULL," +
+				"CONSTRAINT FK_OPERATORS FOREIGN KEY (order_operator_id) REFERENCES operators(operator_id) ON DELETE CASCADE ON UPDATE CASCADE)");
+
+		dbPortal.executeNonQuery("CREATE TABLE products (product_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"product_name nvarchar(30) NOT NULL, product_quantity int NOT NULL,	product_price decimal(10,2) NOT NULL)");
+
+		dbPortal.executeNonQuery("CREATE TABLE order_details (order_detail_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"order_detail_order_id int NOT NULL, order_detail_product_id int NOT NULL, " +
+				"order_detail_product_quantity int NOT NULL," +
+				"CONSTRAINT FK_ORDERS FOREIGN KEY (order_detail_order_id) REFERENCES orders(order_id) ON DELETE CASCADE ON UPDATE CASCADE," +
+				"CONSTRAINT FK_PRODUCTS FOREIGN KEY (order_detail_product_id) REFERENCES products(product_id) ON DELETE CASCADE ON UPDATE CASCADE)");
+		
+		/* for testing only; not needed any more
+		try {
+			if (dbPortal.executeNonQuery("INSERT INTO operators (operator_username, operator_password, operator_first_name, operator_last_name)" + 
+					" VALUES ('operator1', '" + Md5hashcalc.calculateMD5hash("operator1")  + "', '1', ' ')") != 1) {
+				
+				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+				dbPortal.disconnect();
+				dbPortal.finallize();
+				
+				JOptionPane.showMessageDialog(this, "       !\n     .", "      ", JOptionPane.ERROR_MESSAGE);
+				
+				return false;
+			}
+		}
+		catch (Exception ex) {
+			JOptionPane.showMessageDialog(this, "       MD5!", " ", 
+					JOptionPane.ERROR_MESSAGE);
+			System.exit(-1);
+		}*/
+		
+		return true;
+	}	
+}

programming_language: Java
filename: d0500513b75d001211398853d386ea7d
change_type: ModificationType.RENAME
diff: @@ -3,17 +3,18 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.WindowEvent;
 
-import javax.swing.JButton;
-
 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JPasswordField;
 import javax.swing.JTextField;
+import javax.swing.WindowConstants;
+import javax.swing.JButton;
 import javax.swing.JOptionPane;
 
 import database_management.MySQLdbManager;
 
 public class databaseConnectWindow extends JFrame {
+	private static final long serialVersionUID = 3002L;
 
 	private final JLabel label = new JLabel();
 	private final JLabel label_1 = new JLabel();
@@ -33,7 +34,7 @@ public class databaseConnectWindow extends JFrame {
 	 * @param args
 	 */
 	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
+		EventQueue.invokeLater(new Runnable() { 
 			public void run() {
 				try {
 					databaseConnectWindow frame = new databaseConnectWindow();
@@ -42,7 +43,7 @@ public class databaseConnectWindow extends JFrame {
 					e.printStackTrace();
 				}
 			}
-		});
+		});		
 	}
 
 	/**
@@ -51,7 +52,7 @@ public class databaseConnectWindow extends JFrame {
 	public databaseConnectWindow() {
 		super();
 		setBounds(100, 100, 384, 203);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
 		try {
 			jbInit();
 		} catch (Throwable e) {
@@ -115,6 +116,7 @@ public class databaseConnectWindow extends JFrame {
 			connectToDatabaseButton_actionPerformed(e);
 		}
 	}
+
 	protected void connectToDatabaseButton_actionPerformed(ActionEvent e) {
 		
 		String password = "";
@@ -136,7 +138,7 @@ public class databaseConnectWindow extends JFrame {
 			dbPortal.disconnect(); //just in case
 			
 			if (dbPortal.connect() == false) { //connection settings problem or not running MySQL server
-				dbPortal.finallize();
+				dbPortal.finalize();
 				JOptionPane.showMessageDialog(this, "  !     MySQL   !", 
 						"  !", JOptionPane.ERROR_MESSAGE);
 				
@@ -152,11 +154,11 @@ public class databaseConnectWindow extends JFrame {
 					if (createNewDatabaseAndTables() == false) { //in case of fail do not close this window
 						
 						return;
-					}					
+					}
 				}
 				else {
 				
-					dbPortal.finallize();
+					dbPortal.finalize();
 					return;
 				}
 				
@@ -171,59 +173,79 @@ public class databaseConnectWindow extends JFrame {
 		
 		if (dbPortal.connect() == false) {
 			
-			JOptionPane.showMessageDialog(this, "  !     MySQL   !", 
+			JOptionPane.showMessageDialog(this, "   (1)!     MySQL   !", 
 					"  !", JOptionPane.ERROR_MESSAGE);			
-			dbPortal.finallize();
+			dbPortal.finalize();
 			return false;
 		}
 		
-		if (dbPortal.executeNonQuery("CREATE DATABASE " + mysqlDatabaseNameTextField.getText()) != 1) {
+		//FIXME prone??? to sql injection maybe??
+		
+		if (dbPortal.executeNonQuery("CREATE DATABASE " + mysqlDatabaseNameTextField.getText() + " COLLATE utf8_general_ci") != 1) {
 			
+			dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+			dbPortal.finalize();
 			JOptionPane.showMessageDialog(this, "      !\n     !", 
-					"     !", JOptionPane.ERROR_MESSAGE);			
-			dbPortal.disconnect();
-			dbPortal.finallize();
+					"     !", JOptionPane.ERROR_MESSAGE);
 			return false;
 		}
 		
-		if (dbPortal.executeNonQuery("CREATE TABLE operators (operator_id int NOT NULL AUTO_INCREMENT primary key," + 
-				"operator_username nvarchar(20) NOT NULL, operator_password nvarchar(20) NOT NULL," + 
-				"operator_first_name nvarchar(20) NOT NULL, operator_last_name nvarchar(20) NOT NULL)") == 0) {
+		dbPortal.setMySqlActiveDatabase(mysqlDatabaseNameTextField.getText());
+		dbPortal.disconnect();
+		
+		if (dbPortal.connect() == false) { //false positive for database creation
 			
+			dbPortal.setMySqlActiveDatabase("");
 			dbPortal.disconnect();
-			dbPortal.finallize();
+			
+			if (dbPortal.connect()) {
+				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+				dbPortal.disconnect();
+			}			
+			
+			JOptionPane.showMessageDialog(this, "   (2)!     MySQL   !", 
+					"  !", JOptionPane.ERROR_MESSAGE);			
+			dbPortal.finalize();
 			return false;
 		}
 		
-		if (dbPortal.executeNonQuery("CREATE TABLE orders (order_id int NOT NULL AUTO_INCREMENT primary key," + 
+		dbPortal.executeNonQuery("CREATE TABLE operators (operator_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"operator_username nvarchar(20) NOT NULL, operator_password nvarchar(64) NOT NULL," + 
+				"operator_first_name nvarchar(20) NOT NULL, operator_last_name nvarchar(20) NOT NULL)");
+		
+		dbPortal.executeNonQuery("CREATE TABLE orders (order_id int NOT NULL AUTO_INCREMENT primary key," + 
 				"order_time datetime NOT NULL, order_operator_id int NOT NULL," +
-				"CONSTRAINT FK_OPERATORS FOREIGN KEY (order_operator_id) REFERENCES operators(operator_id) ON DELETE CASCADE ON UPDATE CASCADE)") == 0) {
-			
-			dbPortal.disconnect();
-			dbPortal.finallize();
-			return false;
-		}
+				"CONSTRAINT FK_OPERATORS FOREIGN KEY (order_operator_id) REFERENCES operators(operator_id) ON DELETE CASCADE ON UPDATE CASCADE)");
 
-		if (dbPortal.executeNonQuery("CREATE TABLE products (product_id int NOT NULL AUTO_INCREMENT primary key," + 
-				"product_name nvarchar(30) NOT NULL, product_quantity int NOT NULL,	product_price decimal(10,2) NOT NULL)") == 0) {
-			
-			dbPortal.disconnect();
-			dbPortal.finallize();
-			return false;
-		}
+		dbPortal.executeNonQuery("CREATE TABLE products (product_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"product_name nvarchar(30) NOT NULL, product_quantity int NOT NULL,	product_price decimal(10,2) NOT NULL)");
 
-		if (dbPortal.executeNonQuery("CREATE TABLE order_details (order_detail_id int NOT NULL AUTO_INCREMENT primary key," + 
+		dbPortal.executeNonQuery("CREATE TABLE order_details (order_detail_id int NOT NULL AUTO_INCREMENT primary key," + 
 				"order_detail_order_id int NOT NULL, order_detail_product_id int NOT NULL, " +
 				"order_detail_product_quantity int NOT NULL," +
 				"CONSTRAINT FK_ORDERS FOREIGN KEY (order_detail_order_id) REFERENCES orders(order_id) ON DELETE CASCADE ON UPDATE CASCADE," +
-				"CONSTRAINT FK_PRODUCTS FOREIGN KEY (order_detail_product_id) REFERENCES products(product_id) ON DELETE CASCADE ON UPDATE CASCADE)") == 0) {
-			
-			dbPortal.disconnect();
-			dbPortal.finallize();
-			return false;
+				"CONSTRAINT FK_PRODUCTS FOREIGN KEY (order_detail_product_id) REFERENCES products(product_id) ON DELETE CASCADE ON UPDATE CASCADE)");
+		
+		/* for testing only; not needed any more
+		try {
+			if (dbPortal.executeNonQuery("INSERT INTO operators (operator_username, operator_password, operator_first_name, operator_last_name)" + 
+					" VALUES ('operator1', '" + Md5hashcalc.calculateMD5hash("operator1")  + "', '1', ' ')") != 1) {
+				
+				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+				dbPortal.disconnect();
+				dbPortal.finallize();
+				
+				JOptionPane.showMessageDialog(this, "       !\n     .", "      ", JOptionPane.ERROR_MESSAGE);
+				
+				return false;
+			}
 		}
+		catch (Exception ex) {
+			JOptionPane.showMessageDialog(this, "       MD5!", " ", 
+					JOptionPane.ERROR_MESSAGE);
+			System.exit(-1);
+		}*/
 		
 		return true;
-	}
-
+	}	
 }

programming_language: Java
filename: 203efae3ff5c00121f22d5fb8a5d79d9
change_type: ModificationType.DELETE
diff: @@ -1,127 +0,0 @@
-import java.awt.EventQueue;
-import javax.swing.JButton;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPasswordField;
-import javax.swing.JTextField;
-
-import java.sql.ResultSet;
-import database_management.MySQLdbManager;
-import md5_calculator.Md5hashcalc;
-
-public class operatorUserSettingsWindow extends JFrame {
-
-	private final JLabel usernameLabel = new JLabel();
-	private final JLabel passwordLabel = new JLabel();
-	private final JLabel passwordAgainLabel = new JLabel();
-	private final JLabel nameLabel = new JLabel();
-	private final JLabel lastNameLabel = new JLabel();
-	private final JButton updateButton = new JButton();
-	private final JTextField firstNameTextField = new JTextField();
-	private final JTextField lastNameTextField = new JTextField();
-	private final JPasswordField passwordPasswordField = new JPasswordField();
-	private final JPasswordField passwordAgainPasswordField = new JPasswordField();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public operatorUserSettingsWindow() {
-		super();
-		setBounds(100, 100, 314, 214);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//
-	}
-	private void jbInit() throws Exception {
-		getContentPane().setLayout(null);
-		setTitle("  ");
-		setName("operatorUserSettings");
-		
-		getContentPane().add(usernameLabel);
-		usernameLabel.setText(":");
-		usernameLabel.setBounds(10, 0, 97, 16);
-		
-		getContentPane().add(passwordLabel);
-		passwordLabel.setText(":");
-		passwordLabel.setBounds(10, 76, 97, 16);
-		
-		getContentPane().add(passwordAgainLabel);
-		passwordAgainLabel.setText(" :");
-		passwordAgainLabel.setBounds(10, 95, 97, 16);
-		
-		getContentPane().add(nameLabel);
-		nameLabel.setText(":");
-		nameLabel.setBounds(10, 32, 97, 16);
-		
-		getContentPane().add(lastNameLabel);
-		lastNameLabel.setText(":");
-		lastNameLabel.setBounds(10, 54, 97, 16);
-		
-		getContentPane().add(updateButton);
-		updateButton.setText("");
-		updateButton.setBounds(93, 140, 106, 26);
-		
-		getContentPane().add(firstNameTextField);
-		firstNameTextField.setBounds(113, 30, 175, 20);
-		
-		getContentPane().add(lastNameTextField);
-		lastNameTextField.setBounds(113, 52, 175, 20);
-		
-		getContentPane().add(passwordPasswordField);
-		passwordPasswordField.setBounds(113, 74, 175, 20);
-		
-		getContentPane().add(passwordAgainPasswordField);
-		passwordAgainPasswordField.setBounds(113, 97, 175, 20);
-		
-		getCurrentUserData();
-	}
-	
-	private void getCurrentUserData() {
-		
-		if (databaseConnectWindow.dbPortal == null) {
-			return;
-		}
-		if (databaseConnectWindow.dbPortal.isConnected() == false) {
-			return;
-		}
-		if (operatorUserLoginWindow.loggedUserId == -1) {
-			return;
-		}
-		
-		ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_username, operator_password, " + 
-				"operator_first_name, operator_last_name FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId);
-		
-		if ((rs == null) || (databaseConnectWindow.dbPortal.getLastError() != null)) {
-			return;
-		}
-		
-		try {
-			
-			
-		}
-		catch (Exception ex) {			
-		}		
-	}
-
-}

programming_language: unknown
filename: 008349d2ab5d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,334 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.JButton;
+import javax.swing.WindowConstants;
+import javax.swing.border.TitledBorder;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserLoginWindow extends JFrame {
+	private static final long serialVersionUID = 3003L;
+
+	private final JPanel groupLoginPanel = new JPanel();
+	private final JPanel groupCreateNewUserPanel = new JPanel();
+	private final JLabel loginUsernameLabel = new JLabel();
+	private final JLabel loginPasswordLabel = new JLabel();
+	private final JButton loginButton = new JButton();
+	private final JTextField loginUsernameTextField = new JTextField();
+	private final JPasswordField loginPasswordPasswordField = new JPasswordField();
+	private final JLabel newUsernameLabel = new JLabel();
+	private final JLabel newPasswordLabel = new JLabel();
+	private final JLabel newUserFirstNameLabel = new JLabel();
+	private final JLabel newUserLastNameLabel = new JLabel();
+	private final JButton createNewOperatorButton = new JButton();
+	private final JTextField newUsernameTextField = new JTextField();
+	private final JTextField newFirstNameTextField = new JTextField();
+	private final JPasswordField newPasswordPasswordField = new JPasswordField();
+	private final JTextField newLastNameTextField = new JTextField();
+	
+	public static int loggedUserId = -1;
+	public static String loggedUserNames = "";
+	
+	private final JLabel newPasswordAgainLabel = new JLabel();
+	private final JPasswordField newPasswordPasswordAgainField = new JPasswordField();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserLoginWindow frame = new operatorUserLoginWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserLoginWindow() {
+		super();
+		setBounds(100, 100, 518, 242);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setTitle("  ");
+		setName("operatorLoginWindow");
+		setResizable(false);
+		setAlwaysOnTop(true);
+		
+		getContentPane().add(groupLoginPanel);
+		groupLoginPanel.setLayout(null);
+		groupLoginPanel.setBorder(new TitledBorder(null, ":", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupLoginPanel.setBounds(10, 10, 243, 133);
+		
+		groupLoginPanel.add(loginUsernameLabel);
+		loginUsernameLabel.setText(":");
+		loginUsernameLabel.setBounds(10, 31, 80, 16);
+		
+		groupLoginPanel.add(loginPasswordLabel);
+		loginPasswordLabel.setText(":");
+		loginPasswordLabel.setBounds(10, 53, 80, 16);
+		
+		groupLoginPanel.add(loginButton);
+		loginButton.addActionListener(new LoginButtonActionListener());
+		loginButton.setText("");
+		loginButton.setBounds(127, 93, 106, 26);
+		
+		groupLoginPanel.add(loginUsernameTextField);
+		loginUsernameTextField.setBounds(96, 29, 137, 20);
+		
+		groupLoginPanel.add(loginPasswordPasswordField);
+		loginPasswordPasswordField.setBounds(96, 51, 137, 20);
+		
+		getContentPane().add(groupCreateNewUserPanel);
+		groupCreateNewUserPanel.setLayout(null);
+		groupCreateNewUserPanel.setBorder(new TitledBorder(null, " :", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupCreateNewUserPanel.setBounds(259, 10, 243, 194);
+		
+		groupCreateNewUserPanel.add(newUsernameLabel);
+		newUsernameLabel.setText(" :");
+		newUsernameLabel.setBounds(10, 32, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordLabel);
+		newPasswordLabel.setText(":");
+		newPasswordLabel.setBounds(10, 54, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserFirstNameLabel);
+		newUserFirstNameLabel.setText(":");
+		newUserFirstNameLabel.setBounds(10, 98, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserLastNameLabel);
+		newUserLastNameLabel.setText(":");
+		newUserLastNameLabel.setBounds(10, 120, 95, 16);
+		
+		groupCreateNewUserPanel.add(createNewOperatorButton);
+		createNewOperatorButton.addActionListener(new CreateNewOperatorButtonActionListener());
+		createNewOperatorButton.setText("");
+		createNewOperatorButton.setBounds(127, 158, 106, 26);
+		
+		groupCreateNewUserPanel.add(newUsernameTextField);
+		newUsernameTextField.setBounds(111, 30, 122, 20);
+		
+		groupCreateNewUserPanel.add(newFirstNameTextField);
+		newFirstNameTextField.setBounds(111, 96, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordField);
+		newPasswordPasswordField.setBounds(111, 52, 122, 20);
+		
+		groupCreateNewUserPanel.add(newLastNameTextField);
+		newLastNameTextField.setBounds(111, 118, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordAgainLabel);
+		newPasswordAgainLabel.setText(" :");
+		newPasswordAgainLabel.setBounds(10, 76, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordAgainField);
+		newPasswordPasswordAgainField.setBounds(111, 75, 122, 20);
+	}
+	private class LoginButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			loginButton_actionPerformed(e);
+		}
+	}
+	private class CreateNewOperatorButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			createNewOperatorButton_actionPerformed(e);
+		}
+	}
+	
+	protected void loginButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				String password = "";
+				
+				char[] pass = loginPasswordPasswordField.getPassword();
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				//FIXME prone to sql injection
+				
+				ResultSet rs = null;
+				
+				try {				
+					
+					/*rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_id, operator_first_name, operator_last_name FROM operators WHERE" + 
+						" operator_username='" + loginUsernameTextField.getText() + "' AND operator_password='" +
+						Md5hashcalc.calculateMD5hash(password) + "'");*/
+					Object[] params = new Object[2];
+					params[0] = loginUsernameTextField.getText();
+					params[1] = Md5hashcalc.calculateMD5hash(password);
+					
+					rs = databaseConnectWindow.dbPortal.executeParameterizedQuery("SELECT operator_id, operator_first_name, " + "" +
+							"operator_last_name FROM operators WHERE operator_username=? AND operator_password=?", params);
+							
+				}
+				catch (Exception ex) {
+					System.exit(-1);
+				}
+				
+				if (rs != null) {
+					
+					try {
+						
+						loggedUserId = rs.getInt(1);
+						loggedUserNames = rs.getString(2) + " " + rs.getString(3);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", "  ", 
+								JOptionPane.ERROR_MESSAGE);
+						return;
+					}
+					
+					this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+				}
+				else {
+					JOptionPane.showMessageDialog(this, "   !", "  ", 
+							JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}		
+	}
+	
+	protected void createNewOperatorButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				char[] pass = newPasswordPasswordField.getPassword();
+				String password = "";
+				String encryptedPassword = "";
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				char[] pass2 = newPasswordPasswordAgainField.getPassword();
+				
+				if (pass.length == pass2.length) {
+				
+						for (int i = 0; i < pass.length; i++) {
+							
+							if (pass[i] != pass2[i]) {
+								
+								JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+								return;
+							}
+						}
+				}
+				else {
+				
+					JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+					return;
+				}
+								
+				if ((newUsernameTextField.getText().length() > 3) && (password.length() > 3) && 
+						(newFirstNameTextField.getText().length() > 3) && (newLastNameTextField.getText().length() > 3)) {
+					
+					try {
+						
+						encryptedPassword = Md5hashcalc.calculateMD5hash(password);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", " ", JOptionPane.ERROR_MESSAGE);
+						System.exit(-1);
+					}
+					
+					//FIXME prone to sql injection
+					ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT COUNT(*) FROM operators WHERE operator_username='" +
+							newUsernameTextField.getText() + "'");
+					
+					int usersCount = 0;
+					try {
+						
+						usersCount = rs.getInt(1);
+					}
+					catch (Exception ex) {						
+					}					
+					
+					if ((databaseConnectWindow.dbPortal.getLastError() == null) && (usersCount == 0)) {						
+						
+						//no such existing username so now we create it
+						//FIXME prone to sql injection
+						if (databaseConnectWindow.dbPortal.executeNonQuery("INSERT INTO operators(operator_username, operator_password, " +
+								"operator_first_name, operator_last_name) VALUES('" + newUsernameTextField.getText() + "', '" +
+								encryptedPassword + "', '" + newFirstNameTextField.getText() + "', '" + newLastNameTextField.getText() + "')") != 1) {
+							
+							JOptionPane.showMessageDialog(this, "     !", "", JOptionPane.ERROR_MESSAGE);
+						}
+						else { //everything ok so login now
+							
+							loginUsernameTextField.setText(newUsernameTextField.getText());
+							loginPasswordPasswordField.setText(password);
+							loginButton_actionPerformed(null);
+						}						
+					}
+					else {
+						
+						if (databaseConnectWindow.dbPortal.getLastError() != null) {
+							
+							JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);							
+						}
+						else {
+							
+							JOptionPane.showMessageDialog(this, "      .", "   ", JOptionPane.ERROR_MESSAGE);							
+						}
+					}					
+				}
+				else {
+					
+					JOptionPane.showMessageDialog(this, "    - !", " ", JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+		}		
+	}
+
+}

programming_language: Java
filename: a0f5259eb55c00121e34961e0ace9d22
change_type: ModificationType.DELETE
diff: @@ -1,254 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.EventQueue;
-import java.awt.FlowLayout;
-import java.awt.GridLayout;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSeparator;
-import javax.swing.SpringLayout;
-import javax.swing.border.BevelBorder;
-import javax.swing.border.EtchedBorder;
-import org.jdesktop.layout.GroupLayout;
-import org.jdesktop.layout.LayoutStyle;
-import com.jgoodies.forms.factories.FormFactory;
-import com.jgoodies.forms.layout.CellConstraints;
-import com.jgoodies.forms.layout.ColumnSpec;
-import com.jgoodies.forms.layout.FormLayout;
-import com.jgoodies.forms.layout.RowSpec;
-
-public class mainWindow extends JFrame {
-
-	private final JMenuBar mainWindowMenu = new JMenuBar();
-	private final JMenu File = new JMenu();
-	private final JMenuItem FileConnectToDb = new JMenuItem();
-	private final JMenu Operations = new JMenu();
-	private final JMenu Help = new JMenu();
-	private final JMenuItem HelpAbout = new JMenuItem();
-	private final JMenuItem FileExit = new JMenuItem();
-	private static mainWindow mainWindowPointer;
-	
-	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
-	private final JPanel mainWindowStatusPanel = new JPanel();
-	private final JPanel panel = new JPanel();
-	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
-	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					mainWindow frame = new mainWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public mainWindow() {
-		super();
-		setBounds(100, 100, 682, 438);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		mainWindowPointer = this;
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//		
-	}
-	private void jbInit() throws Exception {
-		addWindowListener(new ThisWindowListener());
-		getContentPane().setLayout(new BorderLayout());
-		setTitle("eShop 1.00 (C) 2013   &  ");
-		setName("mainWindow");
-		
-		setJMenuBar(mainWindowMenu);
-		
-		mainWindowMenu.add(File);
-		File.setText("");
-		
-		File.add(FileConnectToDb);
-		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
-		FileConnectToDb.setText("   ");
-		
-		File.add(FileDisconnectFromDb);
-		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
-		FileDisconnectFromDb.setText("   ");
-		FileDisconnectFromDb.setEnabled(false);
-
-		File.addSeparator();
-		
-		File.add(FileExit);
-		FileExit.addActionListener(new FileExitActionListener());
-		FileExit.setText("");
-		
-		mainWindowMenu.add(Operations);
-		Operations.setText("");
-		Operations.setEnabled(false);
-		
-		mainWindowMenu.add(Help);
-		Help.setText("");
-		
-		Help.add(HelpAbout);
-		HelpAbout.setText("");
-		
-		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
-		mainWindowStatusPanel.setLayout(new FormLayout(
-			new ColumnSpec[] {
-				ColumnSpec.decode("149dlu"),
-				ColumnSpec.decode("72px"),
-				FormFactory.DEFAULT_COLSPEC},
-			new RowSpec[] {
-				FormFactory.RELATED_GAP_ROWSPEC,
-				RowSpec.decode("16px")}));
-		mainWindowStatusPanel.setSize(666, 25);
-		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
-		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
-		
-		mainWindowStatusPanelLoggedUserLabel.setText(":");
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
-		
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(2, 1, 1, 2));
-		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
-		mainWindowStatusPanelLoggedUserSettings.setText("");
-		mainWindowStatusPanelSetEnabled(false);
-	}
-	
-	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
-		
-		Component[] comps = mainWindowStatusPanel.getComponents();
-		
-		for (int i = 0; i < comps.length; i++) {
-		
-			comps[i].setEnabled(enable);	
-		}
-		
-		mainWindowStatusPanel.setEnabled(enable);
-	}
-	
-	private class ThisWindowListener extends WindowAdapter {
-		public void windowClosing(WindowEvent e) {
-			this_windowClosing(e);
-		}
-	}
-	private class FileExitActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileExit_actionPerformed(e);
-		}
-	}
-	private class FileConnectToDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileConnectToDb_actionPerformed(e);
-		}
-	}
-	private class FileDisconnectFromDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileDisconnectFromDb_actionPerformed(e);
-		}
-	}
-	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
-		}
-	}
-
-	protected void this_windowClosing(WindowEvent e) {
-		
-		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			if (databaseConnectWindow.dbPortal.isConnected()) {
-				
-				databaseConnectWindow.dbPortal.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
-			}
-		}
-		this.dispose();
-		//System.exit(0);
-	}
-	
-	protected void fileExit_actionPerformed(ActionEvent e) {
-
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
-	}
-	
-	////////////////////////////////////////////////////////////////////////
-	
-	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
-		
-		//databaseConnectWindow.main(null);
-		databaseConnectWindow dcw = new databaseConnectWindow();
-		dcw.setVisible(true);
-		dcw.addWindowListener(databaseConnectWindowClosing);
-	}
-	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
-		
-        public void windowClosing(WindowEvent e) {
-            
-        	e.getWindow().dispose(); 
-        	
-        	if (databaseConnectWindow.dbPortal != null) {
-    			
-    			if (databaseConnectWindow.dbPortal.isConnected()) {
-    				
-    				//FIXME mainWindowPointer.Operations.setEnabled(true);
-    				mainWindowPointer.mainWindowStatusPanelSetEnabled(true);
-    				mainWindowPointer.FileConnectToDb.setEnabled(false);
-    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
-    			}
-    			else {
-    				//FIXME mainWindowPointer.Operations.setEnabled(false);
-    				mainWindowPointer.mainWindowStatusPanelSetEnabled(false);
-    			}
-    		}            
-        }
-    };
-    
-    ////////////////////////////////////////////////////////////////////////
-    
-	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			databaseConnectWindow.dbPortal.finallize();
-			
-			this.FileConnectToDb.setEnabled(true);
-			this.FileDisconnectFromDb.setEnabled(false);			
-			this.Operations.setEnabled(false);
-			this.mainWindowStatusPanelSetEnabled(false);			
-		}
-	}
-	
-	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
-		
-		operatorUserLogin oul = new operatorUserLogin();
-		oul.setVisible(true);
-//		oul.addWindowListener(l)
-	}
-	
-}

programming_language: unknown
filename: 40fed919a55d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,391 @@
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.EventQueue;
+import java.awt.Insets;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.awt.event.WindowListener;
+import javax.swing.JButton;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.border.EtchedBorder;
+import com.jgoodies.forms.factories.FormFactory;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.ColumnSpec;
+import com.jgoodies.forms.layout.FormLayout;
+import com.jgoodies.forms.layout.RowSpec;
+
+
+public class mainWindow extends JFrame {
+	private static final long serialVersionUID = 3001L;
+
+	private final JMenuBar mainWindowMenu = new JMenuBar();
+	private final JMenu File = new JMenu();
+	private final JMenuItem FileConnectToDb = new JMenuItem();
+	private final JMenu Operations = new JMenu();
+	private final JMenu Help = new JMenu();
+	private final JMenuItem HelpAbout = new JMenuItem();
+	private final JMenuItem FileExit = new JMenuItem();
+	private static mainWindow mainWindowPointer;
+	
+	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
+	private final JPanel mainWindowStatusPanel = new JPanel();
+	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogin = new JButton();
+	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
+
+	private final JLabel mainWindowStatusPanelSeparatorLabel = new JLabel();
+	private final JLabel mainWindowStatusPanelSeparatorLabel2 = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogout = new JButton();
+	
+	private final JMenuItem operationsProductsManagement = new JMenuItem();
+	private final JMenuItem operationsOrdersManagement = new JMenuItem();
+	private final JMenuItem operationsNewOrder = new JMenuItem();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					mainWindow frame = new mainWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public mainWindow() {
+		super();
+		setBounds(100, 100, 682, 438);
+		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		mainWindowPointer = this;
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//		
+	}
+	private void jbInit() throws Exception {
+		addWindowListener(new ThisWindowListener());
+		getContentPane().setLayout(new BorderLayout());
+		setTitle("eShop 1.00 (C) 2013   &  ");
+		setName("mainWindow");
+		
+		setJMenuBar(mainWindowMenu);
+		
+		mainWindowMenu.add(File);
+		File.setText("");
+		
+		File.add(FileConnectToDb);
+		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
+		FileConnectToDb.setText("   ");
+		
+		File.add(FileDisconnectFromDb);
+		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
+		FileDisconnectFromDb.setText("   ");
+		FileDisconnectFromDb.setEnabled(false);
+
+		File.addSeparator();
+		
+		File.add(FileExit);
+		FileExit.addActionListener(new FileExitActionListener());
+		FileExit.setText("");
+		
+		mainWindowMenu.add(Operations);
+		Operations.setText("");
+		Operations.setEnabled(false);
+		
+		Operations.add(operationsNewOrder);
+		operationsNewOrder.addActionListener(new OperationsNewOrderActionListener());
+		operationsNewOrder.setText(" ");
+
+		Operations.addSeparator();
+		
+		Operations.add(operationsProductsManagement);
+		operationsProductsManagement.addActionListener(new OperationsProductsManagementActionListener());
+		operationsProductsManagement.setText("  ");
+		
+		Operations.add(operationsOrdersManagement);
+		operationsOrdersManagement.addActionListener(new OperationsOrdersManagementActionListener());
+		operationsOrdersManagement.setText("  ");
+		
+		mainWindowMenu.add(Help);
+		Help.setText("");
+		
+		Help.add(HelpAbout);
+		HelpAbout.addActionListener(new HelpAboutActionListener());
+		HelpAbout.setText("");
+		
+		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
+		mainWindowStatusPanel.setLayout(new FormLayout(
+			new ColumnSpec[] {
+				ColumnSpec.decode("149dlu"),
+				ColumnSpec.decode("72px"),
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC},
+			new RowSpec[] {
+				FormFactory.RELATED_GAP_ROWSPEC,
+				RowSpec.decode("16px")}));
+		mainWindowStatusPanel.setSize(666, 25);
+		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
+		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
+		
+		mainWindowStatusPanelLoggedUserLabel.setText(":");
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogin, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogin.addActionListener(new MainWindowStatusPanelLoggedUserLoginActionListener());
+		mainWindowStatusPanelLoggedUserLogin.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(4, 1, 1, 2, CellConstraints.CENTER, CellConstraints.DEFAULT));
+		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
+		mainWindowStatusPanelLoggedUserSettings.setMargin(new Insets(2, 14, 2, 14));
+		mainWindowStatusPanelLoggedUserSettings.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel, new CellConstraints(3, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel2, new CellConstraints(5, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel2.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogout, new CellConstraints(6, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogout.addActionListener(new MainWindowStatusPanelLoggedUserLogoutActionListener());
+		mainWindowStatusPanelLoggedUserLogout.setText("");
+		mainWindowStatusPanelSetEnabled(false);
+	}
+	
+	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
+		
+		Component[] comps = mainWindowStatusPanel.getComponents();
+		
+		for (int i = 0; i < comps.length; i++) {
+		
+			comps[i].setEnabled(enable);	
+		}
+		
+		mainWindowStatusPanel.setEnabled(enable);
+	}
+	
+	private class ThisWindowListener extends WindowAdapter {
+		public void windowClosing(WindowEvent e) {
+			this_windowClosing(e);
+		}
+	}
+	private class FileExitActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileExit_actionPerformed(e);
+		}
+	}
+	private class FileConnectToDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileConnectToDb_actionPerformed(e);
+		}
+	}
+	private class FileDisconnectFromDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileDisconnectFromDb_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogin_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLogoutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogout_actionPerformed(e);
+		}
+	}
+	private class HelpAboutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			helpAbout_actionPerformed(e);
+		}
+	}
+	private class OperationsProductsManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsProductsManagement_actionPerformed(e);
+		}
+	}
+	private class OperationsNewOrderActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsNewOrder_actionPerformed(e);
+		}
+	}
+	private class OperationsOrdersManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsOrdersManagement_actionPerformed(e);
+		}
+	}
+
+	protected void this_windowClosing(WindowEvent e) {
+		
+		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				databaseConnectWindow.dbPortal.finalize();
+			}
+		}
+		this.dispose();
+		//System.exit(0);
+	}
+	
+	protected void fileExit_actionPerformed(ActionEvent e) {
+
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
+		
+		databaseConnectWindow dcw = new databaseConnectWindow();
+		dcw.setVisible(true);
+		dcw.addWindowListener(databaseConnectWindowClosing);
+	}
+	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
+		
+        public void windowClosing(WindowEvent e) {
+            
+        	e.getWindow().dispose(); 
+        	
+        	if (databaseConnectWindow.dbPortal != null) {
+    			
+    			if (databaseConnectWindow.dbPortal.isConnected()) {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(true);
+    				mainWindowPointer.FileConnectToDb.setEnabled(false);
+    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
+    			}
+    			else {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(false);
+    			}
+    		}            
+        }
+    };
+    
+    ////////////////////////////////////////////////////////////////////////
+    
+	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			databaseConnectWindow.dbPortal.finalize();
+			
+			this.FileConnectToDb.setEnabled(true);
+			this.FileDisconnectFromDb.setEnabled(false);			
+			this.Operations.setEnabled(false);
+			this.mainWindowStatusPanelSetEnabled(false);	
+			this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			operatorUserLoginWindow.loggedUserId = -1;
+		}
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
+		
+		operatorUserLoginWindow oul = new operatorUserLoginWindow();
+		oul.setVisible(true);
+		oul.addWindowListener(operatorUserLoginWindowClosing);
+	}
+	private static WindowListener operatorUserLoginWindowClosing = new WindowAdapter() {
+
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.Operations.setEnabled(true);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserLoginWindow.loggedUserNames);
+			}
+			else {
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+		
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+		
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		operatorUserSettingsWindow ousw = new operatorUserSettingsWindow();
+		ousw.setVisible(true);
+		ousw.addWindowListener(operatorUserSettingsWindowClosing);
+	}
+	
+	private static WindowListener operatorUserSettingsWindowClosing = new WindowAdapter() {
+		
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserSettingsWindow.operatorFirstNameLastNameCombination);
+			}
+			else { //if operator was deleted
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogout_actionPerformed(ActionEvent e) {
+		
+		this.Operations.setEnabled(false);
+		this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+		operatorUserLoginWindow.loggedUserId = -1;
+	}
+	
+	protected void helpAbout_actionPerformed(ActionEvent e) {
+		
+		JOptionPane.showMessageDialog(this, "eShop ver.-1.00\n(C) 2013   &  ", "", JOptionPane.INFORMATION_MESSAGE);
+	}
+	
+	protected void operationsProductsManagement_actionPerformed(ActionEvent e) {
+		//TODO...		
+	}
+	protected void operationsNewOrder_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	protected void operationsOrdersManagement_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	
+	
+	
+	
+}

programming_language: Java
filename: 50d63551b65d001211398853d386ea7d
change_type: ModificationType.ADD
diff: @@ -0,0 +1,248 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JButton;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserSettingsWindow extends JFrame {
+	private static final long serialVersionUID = 3004L;
+
+	private final JLabel usernameLabel = new JLabel();
+	private final JLabel passwordLabel = new JLabel();
+	private final JLabel passwordAgainLabel = new JLabel();
+	private final JLabel nameLabel = new JLabel();
+	private final JLabel lastNameLabel = new JLabel();
+	private final JButton updateButton = new JButton();
+	private final JButton deleteOperator = new JButton();
+	private final JTextField firstNameTextField = new JTextField();
+	private final JTextField lastNameTextField = new JTextField();
+	private final JPasswordField passwordPasswordField = new JPasswordField();
+	private final JPasswordField passwordAgainPasswordField = new JPasswordField();	
+	
+	private String currentOperatorPassword = "";
+	public static String operatorFirstNameLastNameCombination = "";	
+	
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserSettingsWindow() {
+		super();
+		setBounds(100, 100, 314, 255);
+		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setResizable(false);
+		setAlwaysOnTop(true);
+		setTitle("  ");
+		setName("operatorUserSettings");
+		
+		getContentPane().add(usernameLabel);
+		usernameLabel.setText(":");
+		usernameLabel.setBounds(10, 0, 278, 16);
+		
+		getContentPane().add(passwordLabel);
+		passwordLabel.setText(":");
+		passwordLabel.setBounds(10, 76, 97, 16);
+		
+		getContentPane().add(passwordAgainLabel);
+		passwordAgainLabel.setText(" :");
+		passwordAgainLabel.setBounds(10, 95, 97, 16);
+		
+		getContentPane().add(nameLabel);
+		nameLabel.setText(":");
+		nameLabel.setBounds(10, 32, 97, 16);
+		
+		getContentPane().add(lastNameLabel);
+		lastNameLabel.setText(":");
+		lastNameLabel.setBounds(10, 54, 97, 16);
+		
+		getContentPane().add(updateButton);
+		updateButton.addActionListener(new UpdateButtonActionListener());
+		updateButton.setText("");
+		updateButton.setBounds(90, 130, 137, 26);
+		
+		getContentPane().add(firstNameTextField);
+		firstNameTextField.setBounds(113, 30, 175, 20);
+		
+		getContentPane().add(lastNameTextField);
+		lastNameTextField.setBounds(113, 52, 175, 20);
+		
+		getContentPane().add(passwordPasswordField);
+		passwordPasswordField.setBounds(113, 74, 175, 20);
+		
+		getContentPane().add(passwordAgainPasswordField);
+		passwordAgainPasswordField.setBounds(113, 97, 175, 20);
+		
+		getCurrentUserData();
+		
+		getContentPane().add(deleteOperator);
+		deleteOperator.addActionListener(new DeleteOperatorActionListener());
+		deleteOperator.setText(" ");
+		deleteOperator.setBounds(90, 189, 137, 26);
+	}
+	
+	private void getCurrentUserData() {
+		
+		if (databaseConnectWindow.dbPortal == null) {
+			return;
+		}
+		if (databaseConnectWindow.dbPortal.isConnected() == false) {
+			return;
+		}
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_username, operator_password, " + 
+				"operator_first_name, operator_last_name FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId);
+		
+		if ((rs == null) || (databaseConnectWindow.dbPortal.getLastError() != null)) {
+			return;
+		}
+		
+		try {
+			
+			usernameLabel.setText(": " + rs.getString(1));
+			currentOperatorPassword = rs.getString(2);
+			firstNameTextField.setText(rs.getString(3));
+			lastNameTextField.setText(rs.getString(4));
+		}
+		catch (Exception ex) {			
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+	}
+	
+	private class UpdateButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			updateButton_actionPerformed(e);
+		}
+	}
+	private class DeleteOperatorActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			deleteOperator_actionPerformed(e);
+		}
+	}
+	protected void updateButton_actionPerformed(ActionEvent e) {
+		
+		char[] pass = passwordPasswordField.getPassword();
+		String password = "";
+		
+		for (int i = 0; i < pass.length; i++) {
+			
+			password += pass[i];
+		}
+		
+		char[] pass2 = passwordAgainPasswordField.getPassword();
+		String password2 = "";
+		
+		for (int j = 0; j < pass2.length; j++) {
+			
+			password2 += pass2[j];
+		}
+		
+		if (password.compareTo(password2) != 0) {
+			
+			JOptionPane.showMessageDialog(this, "  !", "    ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		if (password.length() > 3) { //password update will be performed too
+			
+			try {
+				
+				password = Md5hashcalc.calculateMD5hash(password);
+				currentOperatorPassword = password;
+			}
+			catch (Exception ex) {
+				
+				JOptionPane.showMessageDialog(this, "       \n      !", "    ", JOptionPane.ERROR_MESSAGE);
+			}			
+		}
+		else {
+			if (password.length() > 0) {
+				
+				JOptionPane.showMessageDialog(this, "     4 !", "    ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		
+		if ((firstNameTextField.getText().length() <= 3) || (lastNameTextField.getText().length() <= 3)) {
+			
+			JOptionPane.showMessageDialog(this, "    !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		if (databaseConnectWindow.dbPortal.executeParameterizedNonQuery("UPDATE operators SET operator_password=? " +
+				"operator_first_name=? operator_last_name=? WHERE operator_id=?", currentOperatorPassword, 
+				firstNameTextField.getText(), lastNameTextField.getText(), operatorUserLoginWindow.loggedUserId) != 1) {
+		
+			JOptionPane.showMessageDialog(this, "    !" + databaseConnectWindow.dbPortal.getLastError(), "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+		operatorUserLoginWindow.loggedUserNames = operatorFirstNameLastNameCombination; //in case
+		
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
+	}
+	
+	protected void deleteOperator_actionPerformed(ActionEvent e) {
+		
+		//we can not delete not existing operator
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		if (JOptionPane.showConfirmDialog(this, "       \n" + 
+				"  ,    .\n\n\t?", "   ", 
+				JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+			
+			if (databaseConnectWindow.dbPortal.executeNonQuery("DELETE FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId) != 1) {
+
+				JOptionPane.showMessageDialog(this, "  !", "   ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+			
+			operatorUserLoginWindow.loggedUserId = -1;
+			this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+		}
+		
+		return;
+	}
+
+}

programming_language: Java
filename: f0d96297ff5c00121f22d5fb8a5d79d9
change_type: ModificationType.DELETE
diff: @@ -1,127 +0,0 @@
-import java.awt.EventQueue;
-import javax.swing.JButton;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPasswordField;
-import javax.swing.JTextField;
-
-import java.sql.ResultSet;
-import database_management.MySQLdbManager;
-import md5_calculator.Md5hashcalc;
-
-public class operatorUserSettingsWindow extends JFrame {
-
-	private final JLabel usernameLabel = new JLabel();
-	private final JLabel passwordLabel = new JLabel();
-	private final JLabel passwordAgainLabel = new JLabel();
-	private final JLabel nameLabel = new JLabel();
-	private final JLabel lastNameLabel = new JLabel();
-	private final JButton updateButton = new JButton();
-	private final JTextField firstNameTextField = new JTextField();
-	private final JTextField lastNameTextField = new JTextField();
-	private final JPasswordField passwordPasswordField = new JPasswordField();
-	private final JPasswordField passwordAgainPasswordField = new JPasswordField();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public operatorUserSettingsWindow() {
-		super();
-		setBounds(100, 100, 314, 214);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//
-	}
-	private void jbInit() throws Exception {
-		getContentPane().setLayout(null);
-		setTitle("  ");
-		setName("operatorUserSettings");
-		
-		getContentPane().add(usernameLabel);
-		usernameLabel.setText(":");
-		usernameLabel.setBounds(10, 0, 97, 16);
-		
-		getContentPane().add(passwordLabel);
-		passwordLabel.setText(":");
-		passwordLabel.setBounds(10, 76, 97, 16);
-		
-		getContentPane().add(passwordAgainLabel);
-		passwordAgainLabel.setText(" :");
-		passwordAgainLabel.setBounds(10, 95, 97, 16);
-		
-		getContentPane().add(nameLabel);
-		nameLabel.setText(":");
-		nameLabel.setBounds(10, 32, 97, 16);
-		
-		getContentPane().add(lastNameLabel);
-		lastNameLabel.setText(":");
-		lastNameLabel.setBounds(10, 54, 97, 16);
-		
-		getContentPane().add(updateButton);
-		updateButton.setText("");
-		updateButton.setBounds(93, 140, 106, 26);
-		
-		getContentPane().add(firstNameTextField);
-		firstNameTextField.setBounds(113, 30, 175, 20);
-		
-		getContentPane().add(lastNameTextField);
-		lastNameTextField.setBounds(113, 52, 175, 20);
-		
-		getContentPane().add(passwordPasswordField);
-		passwordPasswordField.setBounds(113, 74, 175, 20);
-		
-		getContentPane().add(passwordAgainPasswordField);
-		passwordAgainPasswordField.setBounds(113, 97, 175, 20);
-		
-		getCurrentUserData();
-	}
-	
-	private void getCurrentUserData() {
-		
-		if (databaseConnectWindow.dbPortal == null) {
-			return;
-		}
-		if (databaseConnectWindow.dbPortal.isConnected() == false) {
-			return;
-		}
-		if (operatorUserLoginWindow.loggedUserId == -1) {
-			return;
-		}
-		
-		ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_username, operator_password, " + 
-				"operator_first_name, operator_last_name FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId);
-		
-		if ((rs == null) || (databaseConnectWindow.dbPortal.getLastError() != null)) {
-			return;
-		}
-		
-		try {
-			
-		}
-		catch (Exception ex) {
-			
-		}		
-	}
-
-}

programming_language: unknown
filename: 50455296a45d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,392 @@
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.EventQueue;
+import java.awt.Insets;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.awt.event.WindowListener;
+import javax.swing.JButton;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.border.EtchedBorder;
+import org.jdesktop.layout.GroupLayout;
+import org.jdesktop.layout.LayoutStyle;
+import com.jgoodies.forms.factories.FormFactory;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.ColumnSpec;
+import com.jgoodies.forms.layout.FormLayout;
+import com.jgoodies.forms.layout.RowSpec;
+
+
+public class mainWindow extends JFrame {
+
+	private final JMenuBar mainWindowMenu = new JMenuBar();
+	private final JMenu File = new JMenu();
+	private final JMenuItem FileConnectToDb = new JMenuItem();
+	private final JMenu Operations = new JMenu();
+	private final JMenu Help = new JMenu();
+	private final JMenuItem HelpAbout = new JMenuItem();
+	private final JMenuItem FileExit = new JMenuItem();
+	private static mainWindow mainWindowPointer;
+	
+	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
+	private final JPanel mainWindowStatusPanel = new JPanel();
+	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogin = new JButton();
+	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
+
+	private final JLabel mainWindowStatusPanelSeparatorLabel = new JLabel();
+	private final JLabel mainWindowStatusPanelSeparatorLabel2 = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogout = new JButton();
+	
+	private final JMenuItem operationsProductsManagement = new JMenuItem();
+	private final JMenuItem operationsOrdersManagement = new JMenuItem();
+	private final JMenuItem operationsNewOrder = new JMenuItem();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					mainWindow frame = new mainWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public mainWindow() {
+		super();
+		setBounds(100, 100, 682, 438);
+		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		mainWindowPointer = this;
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//		
+	}
+	private void jbInit() throws Exception {
+		addWindowListener(new ThisWindowListener());
+		getContentPane().setLayout(new BorderLayout());
+		setTitle("eShop 1.00 (C) 2013   &  ");
+		setName("mainWindow");
+		
+		setJMenuBar(mainWindowMenu);
+		
+		mainWindowMenu.add(File);
+		File.setText("");
+		
+		File.add(FileConnectToDb);
+		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
+		FileConnectToDb.setText("   ");
+		
+		File.add(FileDisconnectFromDb);
+		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
+		FileDisconnectFromDb.setText("   ");
+		FileDisconnectFromDb.setEnabled(false);
+
+		File.addSeparator();
+		
+		File.add(FileExit);
+		FileExit.addActionListener(new FileExitActionListener());
+		FileExit.setText("");
+		
+		mainWindowMenu.add(Operations);
+		Operations.setText("");
+		Operations.setEnabled(false);
+		
+		Operations.add(operationsNewOrder);
+		operationsNewOrder.addActionListener(new OperationsNewOrderActionListener());
+		operationsNewOrder.setText(" ");
+
+		Operations.addSeparator();
+		
+		Operations.add(operationsProductsManagement);
+		operationsProductsManagement.addActionListener(new OperationsProductsManagementActionListener());
+		operationsProductsManagement.setText("  ");
+		
+		Operations.add(operationsOrdersManagement);
+		operationsOrdersManagement.addActionListener(new OperationsOrdersManagementActionListener());
+		operationsOrdersManagement.setText("  ");
+		
+		mainWindowMenu.add(Help);
+		Help.setText("");
+		
+		Help.add(HelpAbout);
+		HelpAbout.addActionListener(new HelpAboutActionListener());
+		HelpAbout.setText("");
+		
+		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
+		mainWindowStatusPanel.setLayout(new FormLayout(
+			new ColumnSpec[] {
+				ColumnSpec.decode("149dlu"),
+				ColumnSpec.decode("72px"),
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC},
+			new RowSpec[] {
+				FormFactory.RELATED_GAP_ROWSPEC,
+				RowSpec.decode("16px")}));
+		mainWindowStatusPanel.setSize(666, 25);
+		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
+		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
+		
+		mainWindowStatusPanelLoggedUserLabel.setText(":");
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogin, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogin.addActionListener(new MainWindowStatusPanelLoggedUserLoginActionListener());
+		mainWindowStatusPanelLoggedUserLogin.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(4, 1, 1, 2, CellConstraints.CENTER, CellConstraints.DEFAULT));
+		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
+		mainWindowStatusPanelLoggedUserSettings.setMargin(new Insets(2, 14, 2, 14));
+		mainWindowStatusPanelLoggedUserSettings.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel, new CellConstraints(3, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel2, new CellConstraints(5, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel2.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogout, new CellConstraints(6, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogout.addActionListener(new MainWindowStatusPanelLoggedUserLogoutActionListener());
+		mainWindowStatusPanelLoggedUserLogout.setText("");
+		mainWindowStatusPanelSetEnabled(false);
+	}
+	
+	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
+		
+		Component[] comps = mainWindowStatusPanel.getComponents();
+		
+		for (int i = 0; i < comps.length; i++) {
+		
+			comps[i].setEnabled(enable);	
+		}
+		
+		mainWindowStatusPanel.setEnabled(enable);
+	}
+	
+	private class ThisWindowListener extends WindowAdapter {
+		public void windowClosing(WindowEvent e) {
+			this_windowClosing(e);
+		}
+	}
+	private class FileExitActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileExit_actionPerformed(e);
+		}
+	}
+	private class FileConnectToDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileConnectToDb_actionPerformed(e);
+		}
+	}
+	private class FileDisconnectFromDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileDisconnectFromDb_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogin_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLogoutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogout_actionPerformed(e);
+		}
+	}
+	private class HelpAboutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			helpAbout_actionPerformed(e);
+		}
+	}
+	private class OperationsProductsManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsProductsManagement_actionPerformed(e);
+		}
+	}
+	private class OperationsNewOrderActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsNewOrder_actionPerformed(e);
+		}
+	}
+	private class OperationsOrdersManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsOrdersManagement_actionPerformed(e);
+		}
+	}
+
+	protected void this_windowClosing(WindowEvent e) {
+		
+		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				databaseConnectWindow.dbPortal.finalize();
+			}
+		}
+		this.dispose();
+		//System.exit(0);
+	}
+	
+	protected void fileExit_actionPerformed(ActionEvent e) {
+
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
+		
+		databaseConnectWindow dcw = new databaseConnectWindow();
+		dcw.setVisible(true);
+		dcw.addWindowListener(databaseConnectWindowClosing);
+	}
+	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
+		
+        public void windowClosing(WindowEvent e) {
+            
+        	e.getWindow().dispose(); 
+        	
+        	if (databaseConnectWindow.dbPortal != null) {
+    			
+    			if (databaseConnectWindow.dbPortal.isConnected()) {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(true);
+    				mainWindowPointer.FileConnectToDb.setEnabled(false);
+    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
+    			}
+    			else {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(false);
+    			}
+    		}            
+        }
+    };
+    
+    ////////////////////////////////////////////////////////////////////////
+    
+	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			databaseConnectWindow.dbPortal.finalize();
+			
+			this.FileConnectToDb.setEnabled(true);
+			this.FileDisconnectFromDb.setEnabled(false);			
+			this.Operations.setEnabled(false);
+			this.mainWindowStatusPanelSetEnabled(false);	
+			this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			operatorUserLoginWindow.loggedUserId = -1;
+		}
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
+		
+		operatorUserLoginWindow oul = new operatorUserLoginWindow();
+		oul.setVisible(true);
+		oul.addWindowListener(operatorUserLoginWindowClosing);
+	}
+	private static WindowListener operatorUserLoginWindowClosing = new WindowAdapter() {
+
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.Operations.setEnabled(true);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserLoginWindow.loggedUserNames);
+			}
+			else {
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+		
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+		
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		operatorUserSettingsWindow ousw = new operatorUserSettingsWindow();
+		ousw.setVisible(true);
+		ousw.addWindowListener(operatorUserSettingsWindowClosing);
+	}
+	
+	private static WindowListener operatorUserSettingsWindowClosing = new WindowAdapter() {
+		
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserSettingsWindow.operatorFirstNameLastNameCombination);
+			}
+			else { //if operator was deleted
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogout_actionPerformed(ActionEvent e) {
+		
+		this.Operations.setEnabled(false);
+		this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+		operatorUserLoginWindow.loggedUserId = -1;
+	}
+	
+	protected void helpAbout_actionPerformed(ActionEvent e) {
+		
+		JOptionPane.showMessageDialog(this, "eShop ver.-1.00\n(C) 2013   &  ", "", JOptionPane.INFORMATION_MESSAGE);
+	}
+	
+	protected void operationsProductsManagement_actionPerformed(ActionEvent e) {
+		//TODO...		
+	}
+	protected void operationsNewOrder_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	protected void operationsOrdersManagement_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	
+	
+	
+	
+}

programming_language: Java
filename: 200bcdeeb45c00121e34961e0ace9d22
change_type: ModificationType.DELETE
diff: @@ -1,65 +0,0 @@
-import java.awt.EventQueue;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.WindowConstants;
-import javax.swing.border.EtchedBorder;
-import javax.swing.border.TitledBorder;
-
-
-public class operatorUserLogin extends JFrame {
-
-	private final JPanel groupLoginPanel = new JPanel();
-	private final JPanel groupCreateNewUserPanel = new JPanel();
-	
-	public static int loggedUserId = -1;
-	
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					operatorUserLogin frame = new operatorUserLogin();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public operatorUserLogin() {
-		super();
-		setBounds(100, 100, 518, 269);
-		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//
-	}
-	private void jbInit() throws Exception {
-		getContentPane().setLayout(null);
-		setTitle("  ");
-		setName("operatorLogin");
-		setResizable(false);
-		setAlwaysOnTop(true);
-		
-		getContentPane().add(groupLoginPanel);
-		groupLoginPanel.setBorder(new TitledBorder(null, ":", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
-		groupLoginPanel.setBounds(10, 10, 243, 213);
-		
-		getContentPane().add(groupCreateNewUserPanel);
-		groupCreateNewUserPanel.setBorder(new TitledBorder(null, " :", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
-		groupCreateNewUserPanel.setBounds(263, 10, 243, 213);
-	}
-
-}

programming_language: unknown
filename: 900cbfa3a55d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,571 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return int the number of affected things
+	 */
+	
+	public int executeParameterizedNonQuery(String query, Object[] parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		//TODO...
+		// boolean - ok
+		// String  - ok
+		// char    - 
+		// byte    -
+		// short   -
+		// int     -
+		// long    -
+		// double  -
+		// float   -
+		// Date    -
+		// null ???
+		
+		try {
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i, parameters[i]);
+				
+				/*if (parameters[i] instanceof Boolean) {
+					
+					sqlStatement.setBoolean(i, ((Boolean)parameters[i]).booleanValue());
+					continue;
+				}
+				if (parameters[i] instanceof String) {
+					
+					sqlStatement.setString(i, ((String)parameters[i].toString()));
+					continue;
+				}
+				if (parameters[i] instanceof Character) {
+					
+					sqlStatement.set
+				}*/
+			}
+			
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Executes parameterized query and returns ResultSet with data. For SELECT...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeParameterizedQuery(String query, Object[] parameters) { //executes query and returns ResultSet 
+		
+		PreparedStatement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i, parameters[i]);
+			}
+			
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: f02d9590ac5d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,572 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return int the number of affected things
+	 */
+	
+	public int executeParameterizedNonQuery(String query, Object[] parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		//TODO...
+		// boolean - ok
+		// String  - ok
+		// char    - 
+		// byte    -
+		// short   -
+		// int     -
+		// long    -
+		// double  -
+		// float   -
+		// Date    -
+		// null ???
+		
+		try {
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i + 1, parameters[i]);
+				
+				/*if (parameters[i] instanceof Boolean) {
+					
+					sqlStatement.setBoolean(i, ((Boolean)parameters[i]).booleanValue());
+					continue;
+				}
+				if (parameters[i] instanceof String) {
+					
+					sqlStatement.setString(i, ((String)parameters[i].toString()));
+					continue;
+				}
+				if (parameters[i] instanceof Character) {
+					
+					sqlStatement.set
+				}*/
+			}
+			
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Executes parameterized query and returns ResultSet with data. For SELECT...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeParameterizedQuery(String query, Object[] parameters) { //executes query and returns ResultSet 
+		
+		PreparedStatement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i + 1, parameters[i]);
+			}
+			
+			result = sqlStatement.executeQuery(query);
+			
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: 2068ed71a45d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,36 @@
+/*
+ * MD5 hash calculator wrapper
+ * ver.-1.00
+ * (C) 12.01.2013 zhgzhg
+ */
+
+package md5_calculator;
+
+import java.security.MessageDigest;
+import javax.crypto.*;
+
+public class Md5hashcalc {
+	
+	public static String calculateMD5hash(String word) throws Exception {
+		
+		MessageDigest md5;
+		String result = "D41D8CD98F00B204E9800998ECF8427E"; //empty string
+		
+		md5 = MessageDigest.getInstance("MD5");
+		md5.update(word.getBytes(), 0, word.getBytes().length);
+		
+		byte [] wordBytesHash = new byte[16];
+		wordBytesHash = md5.digest();
+		
+		if (wordBytesHash.length != 0) {
+			result = "";
+		
+			for (int i = 0; i < 16; i++) {
+				
+				result += Integer.toString((wordBytesHash[i] & 0xff) + 0x100, 16).substring(1);
+			}
+		}
+		
+		return result;
+	}
+}

programming_language: Java
filename: f0911911ad5d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,334 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.JButton;
+import javax.swing.WindowConstants;
+import javax.swing.border.TitledBorder;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserLoginWindow extends JFrame {
+	private static final long serialVersionUID = 3003L;
+
+	private final JPanel groupLoginPanel = new JPanel();
+	private final JPanel groupCreateNewUserPanel = new JPanel();
+	private final JLabel loginUsernameLabel = new JLabel();
+	private final JLabel loginPasswordLabel = new JLabel();
+	private final JButton loginButton = new JButton();
+	private final JTextField loginUsernameTextField = new JTextField();
+	private final JPasswordField loginPasswordPasswordField = new JPasswordField();
+	private final JLabel newUsernameLabel = new JLabel();
+	private final JLabel newPasswordLabel = new JLabel();
+	private final JLabel newUserFirstNameLabel = new JLabel();
+	private final JLabel newUserLastNameLabel = new JLabel();
+	private final JButton createNewOperatorButton = new JButton();
+	private final JTextField newUsernameTextField = new JTextField();
+	private final JTextField newFirstNameTextField = new JTextField();
+	private final JPasswordField newPasswordPasswordField = new JPasswordField();
+	private final JTextField newLastNameTextField = new JTextField();
+	
+	public static int loggedUserId = -1;
+	public static String loggedUserNames = "";
+	
+	private final JLabel newPasswordAgainLabel = new JLabel();
+	private final JPasswordField newPasswordPasswordAgainField = new JPasswordField();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserLoginWindow frame = new operatorUserLoginWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserLoginWindow() {
+		super();
+		setBounds(100, 100, 518, 242);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setTitle("  ");
+		setName("operatorLoginWindow");
+		setResizable(false);
+		setAlwaysOnTop(true);
+		
+		getContentPane().add(groupLoginPanel);
+		groupLoginPanel.setLayout(null);
+		groupLoginPanel.setBorder(new TitledBorder(null, ":", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupLoginPanel.setBounds(10, 10, 243, 133);
+		
+		groupLoginPanel.add(loginUsernameLabel);
+		loginUsernameLabel.setText(":");
+		loginUsernameLabel.setBounds(10, 31, 80, 16);
+		
+		groupLoginPanel.add(loginPasswordLabel);
+		loginPasswordLabel.setText(":");
+		loginPasswordLabel.setBounds(10, 53, 80, 16);
+		
+		groupLoginPanel.add(loginButton);
+		loginButton.addActionListener(new LoginButtonActionListener());
+		loginButton.setText("");
+		loginButton.setBounds(127, 93, 106, 26);
+		
+		groupLoginPanel.add(loginUsernameTextField);
+		loginUsernameTextField.setBounds(96, 29, 137, 20);
+		
+		groupLoginPanel.add(loginPasswordPasswordField);
+		loginPasswordPasswordField.setBounds(96, 51, 137, 20);
+		
+		getContentPane().add(groupCreateNewUserPanel);
+		groupCreateNewUserPanel.setLayout(null);
+		groupCreateNewUserPanel.setBorder(new TitledBorder(null, " :", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupCreateNewUserPanel.setBounds(259, 10, 243, 194);
+		
+		groupCreateNewUserPanel.add(newUsernameLabel);
+		newUsernameLabel.setText(" :");
+		newUsernameLabel.setBounds(10, 32, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordLabel);
+		newPasswordLabel.setText(":");
+		newPasswordLabel.setBounds(10, 54, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserFirstNameLabel);
+		newUserFirstNameLabel.setText(":");
+		newUserFirstNameLabel.setBounds(10, 98, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserLastNameLabel);
+		newUserLastNameLabel.setText(":");
+		newUserLastNameLabel.setBounds(10, 120, 95, 16);
+		
+		groupCreateNewUserPanel.add(createNewOperatorButton);
+		createNewOperatorButton.addActionListener(new CreateNewOperatorButtonActionListener());
+		createNewOperatorButton.setText("");
+		createNewOperatorButton.setBounds(127, 158, 106, 26);
+		
+		groupCreateNewUserPanel.add(newUsernameTextField);
+		newUsernameTextField.setBounds(111, 30, 122, 20);
+		
+		groupCreateNewUserPanel.add(newFirstNameTextField);
+		newFirstNameTextField.setBounds(111, 96, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordField);
+		newPasswordPasswordField.setBounds(111, 52, 122, 20);
+		
+		groupCreateNewUserPanel.add(newLastNameTextField);
+		newLastNameTextField.setBounds(111, 118, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordAgainLabel);
+		newPasswordAgainLabel.setText(" :");
+		newPasswordAgainLabel.setBounds(10, 76, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordAgainField);
+		newPasswordPasswordAgainField.setBounds(111, 75, 122, 20);
+	}
+	private class LoginButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			loginButton_actionPerformed(e);
+		}
+	}
+	private class CreateNewOperatorButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			createNewOperatorButton_actionPerformed(e);
+		}
+	}
+	
+	protected void loginButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				String password = "";
+				
+				char[] pass = loginPasswordPasswordField.getPassword();
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				//FIXME prone to sql injection
+				
+				ResultSet rs = null;
+				
+				try {				
+					
+					/*rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_id, operator_first_name, operator_last_name FROM operators WHERE" + 
+						" operator_username='" + loginUsernameTextField.getText() + "' AND operator_password='" +
+						Md5hashcalc.calculateMD5hash(password) + "'");*/
+					Object[] params = new Object[2];
+					params[0] = loginUsernameTextField.getText();
+					params[1] = Md5hashcalc.calculateMD5hash(password);
+					
+					rs = databaseConnectWindow.dbPortal.executeParameterizedQuery("SELECT operator_id, operator_first_name, " + "" +
+							"operator_last_name FROM operators WHERE operator_username = ? AND operator_password = ?", params);
+							
+				}
+				catch (Exception ex) {
+					System.exit(-1);
+				}
+				
+				if (rs != null) {
+					
+					try {
+						
+						loggedUserId = rs.getInt(1);
+						loggedUserNames = rs.getString(2) + " " + rs.getString(3);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", "  ", 
+								JOptionPane.ERROR_MESSAGE);
+						return;
+					}
+					
+					this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+				}
+				else {
+					JOptionPane.showMessageDialog(this, "   !", "  ", 
+							JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}		
+	}
+	
+	protected void createNewOperatorButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				char[] pass = newPasswordPasswordField.getPassword();
+				String password = "";
+				String encryptedPassword = "";
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				char[] pass2 = newPasswordPasswordAgainField.getPassword();
+				
+				if (pass.length == pass2.length) {
+				
+						for (int i = 0; i < pass.length; i++) {
+							
+							if (pass[i] != pass2[i]) {
+								
+								JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+								return;
+							}
+						}
+				}
+				else {
+				
+					JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+					return;
+				}
+								
+				if ((newUsernameTextField.getText().length() > 3) && (password.length() > 3) && 
+						(newFirstNameTextField.getText().length() > 3) && (newLastNameTextField.getText().length() > 3)) {
+					
+					try {
+						
+						encryptedPassword = Md5hashcalc.calculateMD5hash(password);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", " ", JOptionPane.ERROR_MESSAGE);
+						System.exit(-1);
+					}
+					
+					//FIXME prone to sql injection
+					ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT COUNT(*) FROM operators WHERE operator_username='" +
+							newUsernameTextField.getText() + "'");
+					
+					int usersCount = 0;
+					try {
+						
+						usersCount = rs.getInt(1);
+					}
+					catch (Exception ex) {						
+					}					
+					
+					if ((databaseConnectWindow.dbPortal.getLastError() == null) && (usersCount == 0)) {						
+						
+						//no such existing username so now we create it
+						//FIXME prone to sql injection
+						if (databaseConnectWindow.dbPortal.executeNonQuery("INSERT INTO operators(operator_username, operator_password, " +
+								"operator_first_name, operator_last_name) VALUES('" + newUsernameTextField.getText() + "', '" +
+								encryptedPassword + "', '" + newFirstNameTextField.getText() + "', '" + newLastNameTextField.getText() + "')") != 1) {
+							
+							JOptionPane.showMessageDialog(this, "     !", "", JOptionPane.ERROR_MESSAGE);
+						}
+						else { //everything ok so login now
+							
+							loginUsernameTextField.setText(newUsernameTextField.getText());
+							loginPasswordPasswordField.setText(password);
+							loginButton_actionPerformed(null);
+						}						
+					}
+					else {
+						
+						if (databaseConnectWindow.dbPortal.getLastError() != null) {
+							
+							JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);							
+						}
+						else {
+							
+							JOptionPane.showMessageDialog(this, "      .", "   ", JOptionPane.ERROR_MESSAGE);							
+						}
+					}					
+				}
+				else {
+					
+					JOptionPane.showMessageDialog(this, "    - !", " ", JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+		}		
+	}
+
+}

programming_language: Java
filename: 20e7fe1cb45d001211398853d386ea7d
change_type: ModificationType.ADD
diff: @@ -0,0 +1,324 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.JButton;
+import javax.swing.WindowConstants;
+import javax.swing.border.TitledBorder;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserLoginWindow extends JFrame {
+	private static final long serialVersionUID = 3003L;
+
+	private final JPanel groupLoginPanel = new JPanel();
+	private final JPanel groupCreateNewUserPanel = new JPanel();
+	private final JLabel loginUsernameLabel = new JLabel();
+	private final JLabel loginPasswordLabel = new JLabel();
+	private final JButton loginButton = new JButton();
+	private final JTextField loginUsernameTextField = new JTextField();
+	private final JPasswordField loginPasswordPasswordField = new JPasswordField();
+	private final JLabel newUsernameLabel = new JLabel();
+	private final JLabel newPasswordLabel = new JLabel();
+	private final JLabel newUserFirstNameLabel = new JLabel();
+	private final JLabel newUserLastNameLabel = new JLabel();
+	private final JButton createNewOperatorButton = new JButton();
+	private final JTextField newUsernameTextField = new JTextField();
+	private final JTextField newFirstNameTextField = new JTextField();
+	private final JPasswordField newPasswordPasswordField = new JPasswordField();
+	private final JTextField newLastNameTextField = new JTextField();
+	
+	public static int loggedUserId = -1;
+	public static String loggedUserNames = "";
+	
+	private final JLabel newPasswordAgainLabel = new JLabel();
+	private final JPasswordField newPasswordPasswordAgainField = new JPasswordField();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserLoginWindow frame = new operatorUserLoginWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserLoginWindow() {
+		super();
+		setBounds(100, 100, 518, 242);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setTitle("  ");
+		setName("operatorLoginWindow");
+		setResizable(false);
+		setAlwaysOnTop(true);
+		
+		getContentPane().add(groupLoginPanel);
+		groupLoginPanel.setLayout(null);
+		groupLoginPanel.setBorder(new TitledBorder(null, ":", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupLoginPanel.setBounds(10, 10, 243, 133);
+		
+		groupLoginPanel.add(loginUsernameLabel);
+		loginUsernameLabel.setText(":");
+		loginUsernameLabel.setBounds(10, 31, 80, 16);
+		
+		groupLoginPanel.add(loginPasswordLabel);
+		loginPasswordLabel.setText(":");
+		loginPasswordLabel.setBounds(10, 53, 80, 16);
+		
+		groupLoginPanel.add(loginButton);
+		loginButton.addActionListener(new LoginButtonActionListener());
+		loginButton.setText("");
+		loginButton.setBounds(127, 93, 106, 26);
+		
+		groupLoginPanel.add(loginUsernameTextField);
+		loginUsernameTextField.setBounds(96, 29, 137, 20);
+		
+		groupLoginPanel.add(loginPasswordPasswordField);
+		loginPasswordPasswordField.setBounds(96, 51, 137, 20);
+		
+		getContentPane().add(groupCreateNewUserPanel);
+		groupCreateNewUserPanel.setLayout(null);
+		groupCreateNewUserPanel.setBorder(new TitledBorder(null, " :", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupCreateNewUserPanel.setBounds(259, 10, 243, 194);
+		
+		groupCreateNewUserPanel.add(newUsernameLabel);
+		newUsernameLabel.setText(" :");
+		newUsernameLabel.setBounds(10, 32, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordLabel);
+		newPasswordLabel.setText(":");
+		newPasswordLabel.setBounds(10, 54, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserFirstNameLabel);
+		newUserFirstNameLabel.setText(":");
+		newUserFirstNameLabel.setBounds(10, 98, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserLastNameLabel);
+		newUserLastNameLabel.setText(":");
+		newUserLastNameLabel.setBounds(10, 120, 95, 16);
+		
+		groupCreateNewUserPanel.add(createNewOperatorButton);
+		createNewOperatorButton.addActionListener(new CreateNewOperatorButtonActionListener());
+		createNewOperatorButton.setText("");
+		createNewOperatorButton.setBounds(127, 158, 106, 26);
+		
+		groupCreateNewUserPanel.add(newUsernameTextField);
+		newUsernameTextField.setBounds(111, 30, 122, 20);
+		
+		groupCreateNewUserPanel.add(newFirstNameTextField);
+		newFirstNameTextField.setBounds(111, 96, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordField);
+		newPasswordPasswordField.setBounds(111, 52, 122, 20);
+		
+		groupCreateNewUserPanel.add(newLastNameTextField);
+		newLastNameTextField.setBounds(111, 118, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordAgainLabel);
+		newPasswordAgainLabel.setText(" :");
+		newPasswordAgainLabel.setBounds(10, 76, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordAgainField);
+		newPasswordPasswordAgainField.setBounds(111, 75, 122, 20);
+	}
+	private class LoginButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			loginButton_actionPerformed(e);
+		}
+	}
+	private class CreateNewOperatorButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			createNewOperatorButton_actionPerformed(e);
+		}
+	}
+	
+	protected void loginButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				String password = "";
+				
+				char[] pass = loginPasswordPasswordField.getPassword();
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				ResultSet rs = null;
+				
+				try {				
+					
+					rs = databaseConnectWindow.dbPortal.executeParameterizedQuery("SELECT operator_id, operator_first_name, " + "" +
+							"operator_last_name FROM operators WHERE operator_username = ? AND operator_password = ?", 
+							loginUsernameTextField.getText(), Md5hashcalc.calculateMD5hash(password));							
+				}
+				catch (Exception ex) {
+					System.exit(-1);
+				}
+				
+				if (rs != null) {
+					
+					try {
+						
+						loggedUserId = rs.getInt(1);
+						loggedUserNames = rs.getString(2) + " " + rs.getString(3);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", "  ", 
+								JOptionPane.ERROR_MESSAGE);
+						return;
+					}
+					
+					this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+				}
+				else {
+					JOptionPane.showMessageDialog(this, "   !", "  ", 
+							JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}		
+	}
+	
+	protected void createNewOperatorButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				char[] pass = newPasswordPasswordField.getPassword();
+				String password = "";
+				String encryptedPassword = "";
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				char[] pass2 = newPasswordPasswordAgainField.getPassword();
+				
+				if (pass.length == pass2.length) {
+				
+						for (int i = 0; i < pass.length; i++) {
+							
+							if (pass[i] != pass2[i]) {
+								
+								JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+								return;
+							}
+						}
+				}
+				else {
+				
+					JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+					return;
+				}
+								
+				if ((newUsernameTextField.getText().length() > 3) && (password.length() > 3) && 
+						(newFirstNameTextField.getText().length() > 3) && (newLastNameTextField.getText().length() > 3)) {
+					
+					try {
+						
+						encryptedPassword = Md5hashcalc.calculateMD5hash(password);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", " ", JOptionPane.ERROR_MESSAGE);
+						System.exit(-1);
+					}
+					
+					ResultSet rs = databaseConnectWindow.dbPortal.executeParameterizedQuery(
+							"SELECT COUNT(*) FROM operators WHERE operator_username=?",	newUsernameTextField.getText());
+					
+					int usersCount = 0;
+					try {
+						
+						usersCount = rs.getInt(1);
+					}
+					catch (Exception ex) {						
+					}					
+					
+					if ((databaseConnectWindow.dbPortal.getLastError() == null) && (usersCount == 0)) {						
+						
+						//no such existing username so now we create it
+						//FIXME prone to sql injection
+						if (databaseConnectWindow.dbPortal.executeNonQuery("INSERT INTO operators(operator_username, operator_password, " +
+								"operator_first_name, operator_last_name) VALUES('" + newUsernameTextField.getText() + "', '" +
+								encryptedPassword + "', '" + newFirstNameTextField.getText() + "', '" + newLastNameTextField.getText() + "')") != 1) {
+							
+							JOptionPane.showMessageDialog(this, "     !", "", JOptionPane.ERROR_MESSAGE);
+						}
+						else { //everything ok so login now
+							
+							loginUsernameTextField.setText(newUsernameTextField.getText());
+							loginPasswordPasswordField.setText(password);
+							loginButton_actionPerformed(null);
+						}						
+					}
+					else {
+						
+						if (databaseConnectWindow.dbPortal.getLastError() != null) {
+							
+							JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);							
+						}
+						else {
+							
+							JOptionPane.showMessageDialog(this, "      .", "   ", JOptionPane.ERROR_MESSAGE);							
+						}
+					}					
+				}
+				else {
+					
+					JOptionPane.showMessageDialog(this, "    - !", " ", JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+		}		
+	}
+
+}

programming_language: Java
filename: 500d2f6eb45d001211398853d386ea7d
change_type: ModificationType.ADD
diff: @@ -0,0 +1,251 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JButton;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserSettingsWindow extends JFrame {
+	private static final long serialVersionUID = 3004L;
+
+	private final JLabel usernameLabel = new JLabel();
+	private final JLabel passwordLabel = new JLabel();
+	private final JLabel passwordAgainLabel = new JLabel();
+	private final JLabel nameLabel = new JLabel();
+	private final JLabel lastNameLabel = new JLabel();
+	private final JButton updateButton = new JButton();
+	private final JTextField firstNameTextField = new JTextField();
+	private final JTextField lastNameTextField = new JTextField();
+	private final JPasswordField passwordPasswordField = new JPasswordField();
+	private final JPasswordField passwordAgainPasswordField = new JPasswordField();
+	
+	private String currentOperatorPassword = "";
+	public static String operatorFirstNameLastNameCombination = "";
+	
+	private final JButton deleteOperator = new JButton();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserSettingsWindow() {
+		super();
+		setBounds(100, 100, 314, 255);
+		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setResizable(false);
+		setAlwaysOnTop(true);
+		setTitle("  ");
+		setName("operatorUserSettings");
+		
+		getContentPane().add(usernameLabel);
+		usernameLabel.setText(":");
+		usernameLabel.setBounds(10, 0, 278, 16);
+		
+		getContentPane().add(passwordLabel);
+		passwordLabel.setText(":");
+		passwordLabel.setBounds(10, 76, 97, 16);
+		
+		getContentPane().add(passwordAgainLabel);
+		passwordAgainLabel.setText(" :");
+		passwordAgainLabel.setBounds(10, 95, 97, 16);
+		
+		getContentPane().add(nameLabel);
+		nameLabel.setText(":");
+		nameLabel.setBounds(10, 32, 97, 16);
+		
+		getContentPane().add(lastNameLabel);
+		lastNameLabel.setText(":");
+		lastNameLabel.setBounds(10, 54, 97, 16);
+		
+		getContentPane().add(updateButton);
+		updateButton.addActionListener(new UpdateButtonActionListener());
+		updateButton.setText("");
+		updateButton.setBounds(90, 130, 137, 26);
+		
+		getContentPane().add(firstNameTextField);
+		firstNameTextField.setBounds(113, 30, 175, 20);
+		
+		getContentPane().add(lastNameTextField);
+		lastNameTextField.setBounds(113, 52, 175, 20);
+		
+		getContentPane().add(passwordPasswordField);
+		passwordPasswordField.setBounds(113, 74, 175, 20);
+		
+		getContentPane().add(passwordAgainPasswordField);
+		passwordAgainPasswordField.setBounds(113, 97, 175, 20);
+		
+		getCurrentUserData();
+		
+		getContentPane().add(deleteOperator);
+		deleteOperator.addActionListener(new DeleteOperatorActionListener());
+		deleteOperator.setText(" ");
+		deleteOperator.setBounds(90, 189, 137, 26);
+	}
+	
+	private void getCurrentUserData() {
+		
+		if (databaseConnectWindow.dbPortal == null) {
+			return;
+		}
+		if (databaseConnectWindow.dbPortal.isConnected() == false) {
+			return;
+		}
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_username, operator_password, " + 
+				"operator_first_name, operator_last_name FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId);
+		
+		if ((rs == null) || (databaseConnectWindow.dbPortal.getLastError() != null)) {
+			return;
+		}
+		
+		try {
+			
+			usernameLabel.setText(": " + rs.getString(1));
+			currentOperatorPassword = rs.getString(2);
+			firstNameTextField.setText(rs.getString(3));
+			lastNameTextField.setText(rs.getString(4));
+		}
+		catch (Exception ex) {			
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+	}
+	
+	private class UpdateButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			updateButton_actionPerformed(e);
+		}
+	}
+	private class DeleteOperatorActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			deleteOperator_actionPerformed(e);
+		}
+	}
+	protected void updateButton_actionPerformed(ActionEvent e) {
+		
+		char[] pass = passwordPasswordField.getPassword();
+		String password = "";
+		
+		for (int i = 0; i < pass.length; i++) {
+			
+			password += pass[i];
+		}
+		
+		char[] pass2 = passwordAgainPasswordField.getPassword();
+		String password2 = "";
+		
+		for (int j = 0; j < pass2.length; j++) {
+			
+			password2 += pass2[j];
+		}
+		
+		if (password.compareTo(password2) != 0) {
+			
+			JOptionPane.showMessageDialog(this, "  !", "    ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		if (password.length() > 3) { //password update will be performed too
+			
+			try {
+				
+				password = Md5hashcalc.calculateMD5hash(password);
+				currentOperatorPassword = password;
+			}
+			catch (Exception ex) {
+				
+				JOptionPane.showMessageDialog(this, "       \n      !", "    ", JOptionPane.ERROR_MESSAGE);
+			}			
+		}
+		else {
+			if (password.length() > 0) {
+				
+				JOptionPane.showMessageDialog(this, "     4 !", "    ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		
+		if ((firstNameTextField.getText().length() <= 3) || (lastNameTextField.getText().length() <= 3)) {
+			
+			JOptionPane.showMessageDialog(this, "    !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		//FIXME prone to sql injection
+		if (databaseConnectWindow.dbPortal.executeNonQuery("UPDATE operators SET operator_password='" + currentOperatorPassword +
+				"', operator_first_name='" + firstNameTextField.getText() + "', operator_last_name='" + 
+				lastNameTextField.getText() + "' WHERE operator_id=" + operatorUserLoginWindow.loggedUserId) != 1) {
+		
+		//if (databaseConnectWindow.dbPortal.getLastError() != null) {
+			
+			JOptionPane.showMessageDialog(this, "    !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+		operatorUserLoginWindow.loggedUserNames = operatorFirstNameLastNameCombination; //in case
+		
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
+	}
+	
+	protected void deleteOperator_actionPerformed(ActionEvent e) {
+		
+		//we can not delete not existing operator
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		if (JOptionPane.showConfirmDialog(this, "       \n" + 
+				"  ,    .\n\n\t?", "   ", 
+				JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+			
+			if (databaseConnectWindow.dbPortal.executeNonQuery("DELETE FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId) != 1) {
+
+				JOptionPane.showMessageDialog(this, "  !", "   ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+			
+			operatorUserLoginWindow.loggedUserId = -1;
+			this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+		}
+		
+		return;
+	}
+
+}

programming_language: Java
filename: c08119b3a05d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,455 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address ot HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: d0bf4040fe5c00121f22d5fb8a5d79d9
change_type: ModificationType.DELETE
diff: @@ -1,95 +0,0 @@
-import java.awt.EventQueue;
-import javax.swing.JButton;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPasswordField;
-import javax.swing.JTextField;
-
-
-public class operatorUserSettingsWindow extends JFrame {
-
-	private final JLabel usernameLabel = new JLabel();
-	private final JLabel passwordLabel = new JLabel();
-	private final JLabel passwordAgainLabel = new JLabel();
-	private final JLabel nameLabel = new JLabel();
-	private final JLabel lastNameLabel = new JLabel();
-	private final JButton updateButton = new JButton();
-	private final JTextField textField = new JTextField();
-	private final JTextField textField_1 = new JTextField();
-	private final JPasswordField passwordField = new JPasswordField();
-	private final JPasswordField passwordField_1 = new JPasswordField();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public operatorUserSettingsWindow() {
-		super();
-		setBounds(100, 100, 314, 214);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//
-	}
-	private void jbInit() throws Exception {
-		getContentPane().setLayout(null);
-		setTitle("  ");
-		setName("operatorUserSettings");
-		
-		getContentPane().add(usernameLabel);
-		usernameLabel.setText(":");
-		usernameLabel.setBounds(10, 0, 97, 16);
-		
-		getContentPane().add(passwordLabel);
-		passwordLabel.setText(":");
-		passwordLabel.setBounds(10, 76, 97, 16);
-		
-		getContentPane().add(passwordAgainLabel);
-		passwordAgainLabel.setText(" :");
-		passwordAgainLabel.setBounds(10, 95, 97, 16);
-		
-		getContentPane().add(nameLabel);
-		nameLabel.setText(":");
-		nameLabel.setBounds(10, 32, 97, 16);
-		
-		getContentPane().add(lastNameLabel);
-		lastNameLabel.setText(":");
-		lastNameLabel.setBounds(10, 54, 97, 16);
-		
-		getContentPane().add(updateButton);
-		updateButton.setText("");
-		updateButton.setBounds(93, 140, 106, 26);
-		
-		getContentPane().add(textField);
-		textField.setBounds(113, 30, 175, 20);
-		
-		getContentPane().add(textField_1);
-		textField_1.setBounds(113, 52, 175, 20);
-		
-		getContentPane().add(passwordField);
-		passwordField.setBounds(113, 74, 175, 20);
-		
-		getContentPane().add(passwordField_1);
-		passwordField_1.setBounds(113, 97, 175, 20);
-	}
-
-}

programming_language: unknown
filename: d0479e0ea45d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,400 @@
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.EventQueue;
+import java.awt.FlowLayout;
+import java.awt.GridLayout;
+import java.awt.Insets;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.awt.event.WindowListener;
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JSeparator;
+import javax.swing.SpringLayout;
+import javax.swing.border.BevelBorder;
+import javax.swing.border.EtchedBorder;
+import org.jdesktop.layout.GroupLayout;
+import org.jdesktop.layout.LayoutStyle;
+import com.jgoodies.forms.factories.FormFactory;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.ColumnSpec;
+import com.jgoodies.forms.layout.FormLayout;
+import com.jgoodies.forms.layout.RowSpec;
+
+import database_management.MySQLdbManager;
+
+public class mainWindow extends JFrame {
+
+	private final JMenuBar mainWindowMenu = new JMenuBar();
+	private final JMenu File = new JMenu();
+	private final JMenuItem FileConnectToDb = new JMenuItem();
+	private final JMenu Operations = new JMenu();
+	private final JMenu Help = new JMenu();
+	private final JMenuItem HelpAbout = new JMenuItem();
+	private final JMenuItem FileExit = new JMenuItem();
+	private static mainWindow mainWindowPointer;
+	
+	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
+	private final JPanel mainWindowStatusPanel = new JPanel();
+	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogin = new JButton();
+	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
+
+	private final JLabel mainWindowStatusPanelSeparatorLabel = new JLabel();
+	private final JLabel mainWindowStatusPanelSeparatorLabel2 = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogout = new JButton();
+	
+	private final JMenuItem operationsProductsManagement = new JMenuItem();
+	private final JMenuItem operationsOrdersManagement = new JMenuItem();
+	private final JMenuItem operationsNewOrder = new JMenuItem();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					mainWindow frame = new mainWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public mainWindow() {
+		super();
+		setBounds(100, 100, 682, 438);
+		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		mainWindowPointer = this;
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//		
+	}
+	private void jbInit() throws Exception {
+		addWindowListener(new ThisWindowListener());
+		getContentPane().setLayout(new BorderLayout());
+		setTitle("eShop 1.00 (C) 2013   &  ");
+		setName("mainWindow");
+		
+		setJMenuBar(mainWindowMenu);
+		
+		mainWindowMenu.add(File);
+		File.setText("");
+		
+		File.add(FileConnectToDb);
+		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
+		FileConnectToDb.setText("   ");
+		
+		File.add(FileDisconnectFromDb);
+		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
+		FileDisconnectFromDb.setText("   ");
+		FileDisconnectFromDb.setEnabled(false);
+
+		File.addSeparator();
+		
+		File.add(FileExit);
+		FileExit.addActionListener(new FileExitActionListener());
+		FileExit.setText("");
+		
+		mainWindowMenu.add(Operations);
+		Operations.setText("");
+		Operations.setEnabled(false);
+		
+		Operations.add(operationsNewOrder);
+		operationsNewOrder.addActionListener(new OperationsNewOrderActionListener());
+		operationsNewOrder.setText(" ");
+
+		Operations.addSeparator();
+		
+		Operations.add(operationsProductsManagement);
+		operationsProductsManagement.addActionListener(new OperationsProductsManagementActionListener());
+		operationsProductsManagement.setText("  ");
+		
+		Operations.add(operationsOrdersManagement);
+		operationsOrdersManagement.addActionListener(new OperationsOrdersManagementActionListener());
+		operationsOrdersManagement.setText("  ");
+		
+		mainWindowMenu.add(Help);
+		Help.setText("");
+		
+		Help.add(HelpAbout);
+		HelpAbout.addActionListener(new HelpAboutActionListener());
+		HelpAbout.setText("");
+		
+		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
+		mainWindowStatusPanel.setLayout(new FormLayout(
+			new ColumnSpec[] {
+				ColumnSpec.decode("149dlu"),
+				ColumnSpec.decode("72px"),
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC},
+			new RowSpec[] {
+				FormFactory.RELATED_GAP_ROWSPEC,
+				RowSpec.decode("16px")}));
+		mainWindowStatusPanel.setSize(666, 25);
+		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
+		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
+		
+		mainWindowStatusPanelLoggedUserLabel.setText(":");
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogin, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogin.addActionListener(new MainWindowStatusPanelLoggedUserLoginActionListener());
+		mainWindowStatusPanelLoggedUserLogin.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(4, 1, 1, 2, CellConstraints.CENTER, CellConstraints.DEFAULT));
+		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
+		mainWindowStatusPanelLoggedUserSettings.setMargin(new Insets(2, 14, 2, 14));
+		mainWindowStatusPanelLoggedUserSettings.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel, new CellConstraints(3, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel2, new CellConstraints(5, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel2.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogout, new CellConstraints(6, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogout.addActionListener(new MainWindowStatusPanelLoggedUserLogoutActionListener());
+		mainWindowStatusPanelLoggedUserLogout.setText("");
+		mainWindowStatusPanelSetEnabled(false);
+	}
+	
+	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
+		
+		Component[] comps = mainWindowStatusPanel.getComponents();
+		
+		for (int i = 0; i < comps.length; i++) {
+		
+			comps[i].setEnabled(enable);	
+		}
+		
+		mainWindowStatusPanel.setEnabled(enable);
+	}
+	
+	private class ThisWindowListener extends WindowAdapter {
+		public void windowClosing(WindowEvent e) {
+			this_windowClosing(e);
+		}
+	}
+	private class FileExitActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileExit_actionPerformed(e);
+		}
+	}
+	private class FileConnectToDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileConnectToDb_actionPerformed(e);
+		}
+	}
+	private class FileDisconnectFromDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileDisconnectFromDb_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogin_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLogoutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogout_actionPerformed(e);
+		}
+	}
+	private class HelpAboutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			helpAbout_actionPerformed(e);
+		}
+	}
+	private class OperationsProductsManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsProductsManagement_actionPerformed(e);
+		}
+	}
+	private class OperationsNewOrderActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsNewOrder_actionPerformed(e);
+		}
+	}
+	private class OperationsOrdersManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsOrdersManagement_actionPerformed(e);
+		}
+	}
+
+	protected void this_windowClosing(WindowEvent e) {
+		
+		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				databaseConnectWindow.dbPortal.finalize();
+			}
+		}
+		this.dispose();
+		//System.exit(0);
+	}
+	
+	protected void fileExit_actionPerformed(ActionEvent e) {
+
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
+		
+		databaseConnectWindow dcw = new databaseConnectWindow();
+		dcw.setVisible(true);
+		dcw.addWindowListener(databaseConnectWindowClosing);
+	}
+	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
+		
+        public void windowClosing(WindowEvent e) {
+            
+        	e.getWindow().dispose(); 
+        	
+        	if (databaseConnectWindow.dbPortal != null) {
+    			
+    			if (databaseConnectWindow.dbPortal.isConnected()) {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(true);
+    				mainWindowPointer.FileConnectToDb.setEnabled(false);
+    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
+    			}
+    			else {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(false);
+    			}
+    		}            
+        }
+    };
+    
+    ////////////////////////////////////////////////////////////////////////
+    
+	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			databaseConnectWindow.dbPortal.finalize();
+			
+			this.FileConnectToDb.setEnabled(true);
+			this.FileDisconnectFromDb.setEnabled(false);			
+			this.Operations.setEnabled(false);
+			this.mainWindowStatusPanelSetEnabled(false);	
+			this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			operatorUserLoginWindow.loggedUserId = -1;
+		}
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
+		
+		operatorUserLoginWindow oul = new operatorUserLoginWindow();
+		oul.setVisible(true);
+		oul.addWindowListener(operatorUserLoginWindowClosing);
+	}
+	private static WindowListener operatorUserLoginWindowClosing = new WindowAdapter() {
+
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.Operations.setEnabled(true);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserLoginWindow.loggedUserNames);
+			}
+			else {
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+		
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+		
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		operatorUserSettingsWindow ousw = new operatorUserSettingsWindow();
+		ousw.setVisible(true);
+		ousw.addWindowListener(operatorUserSettingsWindowClosing);
+	}
+	
+	private static WindowListener operatorUserSettingsWindowClosing = new WindowAdapter() {
+		
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserSettingsWindow.operatorFirstNameLastNameCombination);
+			}
+			else { //if operator was deleted
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogout_actionPerformed(ActionEvent e) {
+		
+		this.Operations.setEnabled(false);
+		this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+		operatorUserLoginWindow.loggedUserId = -1;
+	}
+	
+	protected void helpAbout_actionPerformed(ActionEvent e) {
+		
+		JOptionPane.showMessageDialog(this, "eShop ver.-1.00\n(C) 2013   &  ", "", JOptionPane.INFORMATION_MESSAGE);
+	}
+	
+	protected void operationsProductsManagement_actionPerformed(ActionEvent e) {
+		//TODO...		
+	}
+	protected void operationsNewOrder_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	protected void operationsOrdersManagement_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	
+	
+	
+	
+}

programming_language: Java
filename: f03e2183a45d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,394 @@
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.EventQueue;
+import java.awt.Insets;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.awt.event.WindowListener;
+import javax.swing.JButton;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JSeparator;
+import javax.swing.SpringLayout;
+import javax.swing.border.EtchedBorder;
+import org.jdesktop.layout.GroupLayout;
+import org.jdesktop.layout.LayoutStyle;
+import com.jgoodies.forms.factories.FormFactory;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.ColumnSpec;
+import com.jgoodies.forms.layout.FormLayout;
+import com.jgoodies.forms.layout.RowSpec;
+
+
+public class mainWindow extends JFrame {
+
+	private final JMenuBar mainWindowMenu = new JMenuBar();
+	private final JMenu File = new JMenu();
+	private final JMenuItem FileConnectToDb = new JMenuItem();
+	private final JMenu Operations = new JMenu();
+	private final JMenu Help = new JMenu();
+	private final JMenuItem HelpAbout = new JMenuItem();
+	private final JMenuItem FileExit = new JMenuItem();
+	private static mainWindow mainWindowPointer;
+	
+	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
+	private final JPanel mainWindowStatusPanel = new JPanel();
+	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogin = new JButton();
+	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
+
+	private final JLabel mainWindowStatusPanelSeparatorLabel = new JLabel();
+	private final JLabel mainWindowStatusPanelSeparatorLabel2 = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogout = new JButton();
+	
+	private final JMenuItem operationsProductsManagement = new JMenuItem();
+	private final JMenuItem operationsOrdersManagement = new JMenuItem();
+	private final JMenuItem operationsNewOrder = new JMenuItem();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					mainWindow frame = new mainWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public mainWindow() {
+		super();
+		setBounds(100, 100, 682, 438);
+		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		mainWindowPointer = this;
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//		
+	}
+	private void jbInit() throws Exception {
+		addWindowListener(new ThisWindowListener());
+		getContentPane().setLayout(new BorderLayout());
+		setTitle("eShop 1.00 (C) 2013   &  ");
+		setName("mainWindow");
+		
+		setJMenuBar(mainWindowMenu);
+		
+		mainWindowMenu.add(File);
+		File.setText("");
+		
+		File.add(FileConnectToDb);
+		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
+		FileConnectToDb.setText("   ");
+		
+		File.add(FileDisconnectFromDb);
+		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
+		FileDisconnectFromDb.setText("   ");
+		FileDisconnectFromDb.setEnabled(false);
+
+		File.addSeparator();
+		
+		File.add(FileExit);
+		FileExit.addActionListener(new FileExitActionListener());
+		FileExit.setText("");
+		
+		mainWindowMenu.add(Operations);
+		Operations.setText("");
+		Operations.setEnabled(false);
+		
+		Operations.add(operationsNewOrder);
+		operationsNewOrder.addActionListener(new OperationsNewOrderActionListener());
+		operationsNewOrder.setText(" ");
+
+		Operations.addSeparator();
+		
+		Operations.add(operationsProductsManagement);
+		operationsProductsManagement.addActionListener(new OperationsProductsManagementActionListener());
+		operationsProductsManagement.setText("  ");
+		
+		Operations.add(operationsOrdersManagement);
+		operationsOrdersManagement.addActionListener(new OperationsOrdersManagementActionListener());
+		operationsOrdersManagement.setText("  ");
+		
+		mainWindowMenu.add(Help);
+		Help.setText("");
+		
+		Help.add(HelpAbout);
+		HelpAbout.addActionListener(new HelpAboutActionListener());
+		HelpAbout.setText("");
+		
+		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
+		mainWindowStatusPanel.setLayout(new FormLayout(
+			new ColumnSpec[] {
+				ColumnSpec.decode("149dlu"),
+				ColumnSpec.decode("72px"),
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC},
+			new RowSpec[] {
+				FormFactory.RELATED_GAP_ROWSPEC,
+				RowSpec.decode("16px")}));
+		mainWindowStatusPanel.setSize(666, 25);
+		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
+		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
+		
+		mainWindowStatusPanelLoggedUserLabel.setText(":");
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogin, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogin.addActionListener(new MainWindowStatusPanelLoggedUserLoginActionListener());
+		mainWindowStatusPanelLoggedUserLogin.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(4, 1, 1, 2, CellConstraints.CENTER, CellConstraints.DEFAULT));
+		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
+		mainWindowStatusPanelLoggedUserSettings.setMargin(new Insets(2, 14, 2, 14));
+		mainWindowStatusPanelLoggedUserSettings.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel, new CellConstraints(3, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel2, new CellConstraints(5, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel2.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogout, new CellConstraints(6, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogout.addActionListener(new MainWindowStatusPanelLoggedUserLogoutActionListener());
+		mainWindowStatusPanelLoggedUserLogout.setText("");
+		mainWindowStatusPanelSetEnabled(false);
+	}
+	
+	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
+		
+		Component[] comps = mainWindowStatusPanel.getComponents();
+		
+		for (int i = 0; i < comps.length; i++) {
+		
+			comps[i].setEnabled(enable);	
+		}
+		
+		mainWindowStatusPanel.setEnabled(enable);
+	}
+	
+	private class ThisWindowListener extends WindowAdapter {
+		public void windowClosing(WindowEvent e) {
+			this_windowClosing(e);
+		}
+	}
+	private class FileExitActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileExit_actionPerformed(e);
+		}
+	}
+	private class FileConnectToDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileConnectToDb_actionPerformed(e);
+		}
+	}
+	private class FileDisconnectFromDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileDisconnectFromDb_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogin_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLogoutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogout_actionPerformed(e);
+		}
+	}
+	private class HelpAboutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			helpAbout_actionPerformed(e);
+		}
+	}
+	private class OperationsProductsManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsProductsManagement_actionPerformed(e);
+		}
+	}
+	private class OperationsNewOrderActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsNewOrder_actionPerformed(e);
+		}
+	}
+	private class OperationsOrdersManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsOrdersManagement_actionPerformed(e);
+		}
+	}
+
+	protected void this_windowClosing(WindowEvent e) {
+		
+		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				databaseConnectWindow.dbPortal.finalize();
+			}
+		}
+		this.dispose();
+		//System.exit(0);
+	}
+	
+	protected void fileExit_actionPerformed(ActionEvent e) {
+
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
+		
+		databaseConnectWindow dcw = new databaseConnectWindow();
+		dcw.setVisible(true);
+		dcw.addWindowListener(databaseConnectWindowClosing);
+	}
+	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
+		
+        public void windowClosing(WindowEvent e) {
+            
+        	e.getWindow().dispose(); 
+        	
+        	if (databaseConnectWindow.dbPortal != null) {
+    			
+    			if (databaseConnectWindow.dbPortal.isConnected()) {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(true);
+    				mainWindowPointer.FileConnectToDb.setEnabled(false);
+    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
+    			}
+    			else {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(false);
+    			}
+    		}            
+        }
+    };
+    
+    ////////////////////////////////////////////////////////////////////////
+    
+	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			databaseConnectWindow.dbPortal.finalize();
+			
+			this.FileConnectToDb.setEnabled(true);
+			this.FileDisconnectFromDb.setEnabled(false);			
+			this.Operations.setEnabled(false);
+			this.mainWindowStatusPanelSetEnabled(false);	
+			this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			operatorUserLoginWindow.loggedUserId = -1;
+		}
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
+		
+		operatorUserLoginWindow oul = new operatorUserLoginWindow();
+		oul.setVisible(true);
+		oul.addWindowListener(operatorUserLoginWindowClosing);
+	}
+	private static WindowListener operatorUserLoginWindowClosing = new WindowAdapter() {
+
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.Operations.setEnabled(true);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserLoginWindow.loggedUserNames);
+			}
+			else {
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+		
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+		
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		operatorUserSettingsWindow ousw = new operatorUserSettingsWindow();
+		ousw.setVisible(true);
+		ousw.addWindowListener(operatorUserSettingsWindowClosing);
+	}
+	
+	private static WindowListener operatorUserSettingsWindowClosing = new WindowAdapter() {
+		
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserSettingsWindow.operatorFirstNameLastNameCombination);
+			}
+			else { //if operator was deleted
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogout_actionPerformed(ActionEvent e) {
+		
+		this.Operations.setEnabled(false);
+		this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+		operatorUserLoginWindow.loggedUserId = -1;
+	}
+	
+	protected void helpAbout_actionPerformed(ActionEvent e) {
+		
+		JOptionPane.showMessageDialog(this, "eShop ver.-1.00\n(C) 2013   &  ", "", JOptionPane.INFORMATION_MESSAGE);
+	}
+	
+	protected void operationsProductsManagement_actionPerformed(ActionEvent e) {
+		//TODO...		
+	}
+	protected void operationsNewOrder_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	protected void operationsOrdersManagement_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	
+	
+	
+	
+}

programming_language: Java
filename: e0b4aac9b55c00121e34961e0ace9d22
change_type: ModificationType.DELETE
diff: @@ -1,254 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.EventQueue;
-import java.awt.FlowLayout;
-import java.awt.GridLayout;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSeparator;
-import javax.swing.SpringLayout;
-import javax.swing.border.BevelBorder;
-import javax.swing.border.EtchedBorder;
-import org.jdesktop.layout.GroupLayout;
-import org.jdesktop.layout.LayoutStyle;
-import com.jgoodies.forms.factories.FormFactory;
-import com.jgoodies.forms.layout.CellConstraints;
-import com.jgoodies.forms.layout.ColumnSpec;
-import com.jgoodies.forms.layout.FormLayout;
-import com.jgoodies.forms.layout.RowSpec;
-
-public class mainWindow extends JFrame {
-
-	private final JMenuBar mainWindowMenu = new JMenuBar();
-	private final JMenu File = new JMenu();
-	private final JMenuItem FileConnectToDb = new JMenuItem();
-	private final JMenu Operations = new JMenu();
-	private final JMenu Help = new JMenu();
-	private final JMenuItem HelpAbout = new JMenuItem();
-	private final JMenuItem FileExit = new JMenuItem();
-	private static mainWindow mainWindowPointer;
-	
-	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
-	private final JPanel mainWindowStatusPanel = new JPanel();
-	private final JPanel panel = new JPanel();
-	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
-	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					mainWindow frame = new mainWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public mainWindow() {
-		super();
-		setBounds(100, 100, 682, 438);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		mainWindowPointer = this;
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//		
-	}
-	private void jbInit() throws Exception {
-		addWindowListener(new ThisWindowListener());
-		getContentPane().setLayout(new BorderLayout());
-		setTitle("eShop 1.00 (C) 2013   &  ");
-		setName("mainWindow");
-		
-		setJMenuBar(mainWindowMenu);
-		
-		mainWindowMenu.add(File);
-		File.setText("");
-		
-		File.add(FileConnectToDb);
-		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
-		FileConnectToDb.setText("   ");
-		
-		File.add(FileDisconnectFromDb);
-		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
-		FileDisconnectFromDb.setText("   ");
-		FileDisconnectFromDb.setEnabled(false);
-
-		File.addSeparator();
-		
-		File.add(FileExit);
-		FileExit.addActionListener(new FileExitActionListener());
-		FileExit.setText("");
-		
-		mainWindowMenu.add(Operations);
-		Operations.setText("");
-		Operations.setEnabled(false);
-		
-		mainWindowMenu.add(Help);
-		Help.setText("");
-		
-		Help.add(HelpAbout);
-		HelpAbout.setText("");
-		
-		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
-		mainWindowStatusPanel.setLayout(new FormLayout(
-			new ColumnSpec[] {
-				ColumnSpec.decode("149dlu"),
-				ColumnSpec.decode("72px"),
-				FormFactory.DEFAULT_COLSPEC},
-			new RowSpec[] {
-				FormFactory.RELATED_GAP_ROWSPEC,
-				RowSpec.decode("16px")}));
-		mainWindowStatusPanel.setSize(666, 25);
-		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
-		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
-		
-		mainWindowStatusPanelLoggedUserLabel.setText(":");
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
-		
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(2, 1, 1, 2));
-		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
-		mainWindowStatusPanelLoggedUserSettings.setText("");
-		mainWindowStatusPanelSetEnabled(false);
-	}
-	
-	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
-		
-		Component[] comps = mainWindowStatusPanel.getComponents();
-		
-		for (int i = 0; i < comps.length; i++) {
-		
-			comps[i].setEnabled(enable);	
-		}
-		
-		mainWindowStatusPanel.setEnabled(enable);
-	}
-	
-	private class ThisWindowListener extends WindowAdapter {
-		public void windowClosing(WindowEvent e) {
-			this_windowClosing(e);
-		}
-	}
-	private class FileExitActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileExit_actionPerformed(e);
-		}
-	}
-	private class FileConnectToDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileConnectToDb_actionPerformed(e);
-		}
-	}
-	private class FileDisconnectFromDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileDisconnectFromDb_actionPerformed(e);
-		}
-	}
-	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
-		}
-	}
-
-	protected void this_windowClosing(WindowEvent e) {
-		
-		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			if (databaseConnectWindow.dbPortal.isConnected()) {
-				
-				databaseConnectWindow.dbPortal.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
-			}
-		}
-		this.dispose();
-		//System.exit(0);
-	}
-	
-	protected void fileExit_actionPerformed(ActionEvent e) {
-
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
-	}
-	
-	////////////////////////////////////////////////////////////////////////
-	
-	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
-		
-		//databaseConnectWindow.main(null);
-		databaseConnectWindow dcw = new databaseConnectWindow();
-		dcw.setVisible(true);
-		dcw.addWindowListener(databaseConnectWindowClosing);
-	}
-	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
-		
-        public void windowClosing(WindowEvent e) {
-            
-        	e.getWindow().dispose(); 
-        	
-        	if (databaseConnectWindow.dbPortal != null) {
-    			
-    			if (databaseConnectWindow.dbPortal.isConnected()) {
-    				
-    				//FIXME mainWindowPointer.Operations.setEnabled(true);
-    				mainWindowPointer.mainWindowStatusPanelSetEnabled(true);
-    				mainWindowPointer.FileConnectToDb.setEnabled(false);
-    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
-    			}
-    			else {
-    				//FIXME mainWindowPointer.Operations.setEnabled(false);
-    				mainWindowPointer.mainWindowStatusPanelSetEnabled(false);
-    			}
-    		}            
-        }
-    };
-    
-    ////////////////////////////////////////////////////////////////////////
-    
-	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			databaseConnectWindow.dbPortal.finallize();
-			
-			this.FileConnectToDb.setEnabled(true);
-			this.FileDisconnectFromDb.setEnabled(false);			
-			this.Operations.setEnabled(false);
-			this.mainWindowStatusPanelSetEnabled(false);			
-		}
-	}
-	
-	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
-		
-		operatorUserLoginWindow oul = new operatorUserLoginWindow();
-		oul.setVisible(true);
-//		oul.addWindowListener(l)
-	}
-	
-}

programming_language: unknown
filename: 50bb024db35d001211398853d386ea7d
change_type: ModificationType.ADD
diff: @@ -0,0 +1,572 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return int the number of affected things
+	 */
+	
+	public int executeParameterizedNonQuery(String query, Object... parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		//TODO...
+		// boolean - ok
+		// String  - ok
+		// char    - 
+		// byte    -
+		// short   -
+		// int     -
+		// long    -
+		// double  -
+		// float   -
+		// Date    -
+		// null ???
+		
+		try {
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i + 1, parameters[i]);
+				
+				/*if (parameters[i] instanceof Boolean) {
+					
+					sqlStatement.setBoolean(i, ((Boolean)parameters[i]).booleanValue());
+					continue;
+				}
+				if (parameters[i] instanceof String) {
+					
+					sqlStatement.setString(i, ((String)parameters[i].toString()));
+					continue;
+				}
+				if (parameters[i] instanceof Character) {
+					
+					sqlStatement.set
+				}*/
+			}
+			
+			sqlStatement.execute();
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Executes parameterized query and returns ResultSet with data. For SELECT...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeParameterizedQuery(String query, Object... parameters) { //executes query and returns ResultSet 
+		
+		PreparedStatement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i + 1, parameters[i]);
+			}
+			
+			result = sqlStatement.executeQuery();
+			
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: c097dbfea45d00121890bdcc27f78f62
change_type: ModificationType.RENAME
diff: @@ -3,12 +3,12 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.WindowEvent;
 
-import javax.swing.JButton;
-
 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JPasswordField;
 import javax.swing.JTextField;
+import javax.swing.WindowConstants;
+import javax.swing.JButton;
 import javax.swing.JOptionPane;
 
 import database_management.MySQLdbManager;
@@ -33,7 +33,7 @@ public class databaseConnectWindow extends JFrame {
 	 * @param args
 	 */
 	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
+		EventQueue.invokeLater(new Runnable() { 
 			public void run() {
 				try {
 					databaseConnectWindow frame = new databaseConnectWindow();
@@ -42,7 +42,7 @@ public class databaseConnectWindow extends JFrame {
 					e.printStackTrace();
 				}
 			}
-		});
+		});		
 	}
 
 	/**
@@ -51,7 +51,7 @@ public class databaseConnectWindow extends JFrame {
 	public databaseConnectWindow() {
 		super();
 		setBounds(100, 100, 384, 203);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
 		try {
 			jbInit();
 		} catch (Throwable e) {
@@ -115,6 +115,7 @@ public class databaseConnectWindow extends JFrame {
 			connectToDatabaseButton_actionPerformed(e);
 		}
 	}
+
 	protected void connectToDatabaseButton_actionPerformed(ActionEvent e) {
 		
 		String password = "";
@@ -136,7 +137,7 @@ public class databaseConnectWindow extends JFrame {
 			dbPortal.disconnect(); //just in case
 			
 			if (dbPortal.connect() == false) { //connection settings problem or not running MySQL server
-				dbPortal.finallize();
+				dbPortal.finalize();
 				JOptionPane.showMessageDialog(this, "  !     MySQL   !", 
 						"  !", JOptionPane.ERROR_MESSAGE);
 				
@@ -152,11 +153,11 @@ public class databaseConnectWindow extends JFrame {
 					if (createNewDatabaseAndTables() == false) { //in case of fail do not close this window
 						
 						return;
-					}					
+					}
 				}
 				else {
 				
-					dbPortal.finallize();
+					dbPortal.finalize();
 					return;
 				}
 				
@@ -169,18 +170,46 @@ public class databaseConnectWindow extends JFrame {
 	
 	private boolean createNewDatabaseAndTables() {
 		
-		dbPortal.setMySqlActiveDatabase("");
-		
 		if (dbPortal.connect() == false) {
 			
-			dbPortal.finallize();
+			JOptionPane.showMessageDialog(this, "   (1)!     MySQL   !", 
+					"  !", JOptionPane.ERROR_MESSAGE);			
+			dbPortal.finalize();
 			return false;
 		}
 		
+		//FIXME prone??? to sql injection maybe??
 		
+		if (dbPortal.executeNonQuery("CREATE DATABASE " + mysqlDatabaseNameTextField.getText() + " COLLATE utf8_general_ci") != 1) {
+			
+			dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+			dbPortal.finalize();
+			JOptionPane.showMessageDialog(this, "      !\n     !", 
+					"     !", JOptionPane.ERROR_MESSAGE);
+			return false;
+		}
+		
+		dbPortal.setMySqlActiveDatabase(mysqlDatabaseNameTextField.getText());
+		dbPortal.disconnect();
+		
+		if (dbPortal.connect() == false) { //false positive for database creation
+			
+			dbPortal.setMySqlActiveDatabase("");
+			dbPortal.disconnect();
+			
+			if (dbPortal.connect()) {
+				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+				dbPortal.disconnect();
+			}			
+			
+			JOptionPane.showMessageDialog(this, "   (2)!     MySQL   !", 
+					"  !", JOptionPane.ERROR_MESSAGE);			
+			dbPortal.finalize();
+			return false;
+		}
 		
 		dbPortal.executeNonQuery("CREATE TABLE operators (operator_id int NOT NULL AUTO_INCREMENT primary key," + 
-				"operator_username nvarchar(20) NOT NULL, operator_password nvarchar(20) NOT NULL," + 
+				"operator_username nvarchar(20) NOT NULL, operator_password nvarchar(64) NOT NULL," + 
 				"operator_first_name nvarchar(20) NOT NULL, operator_last_name nvarchar(20) NOT NULL)");
 		
 		dbPortal.executeNonQuery("CREATE TABLE orders (order_id int NOT NULL AUTO_INCREMENT primary key," + 
@@ -196,7 +225,26 @@ public class databaseConnectWindow extends JFrame {
 				"CONSTRAINT FK_ORDERS FOREIGN KEY (order_detail_order_id) REFERENCES orders(order_id) ON DELETE CASCADE ON UPDATE CASCADE," +
 				"CONSTRAINT FK_PRODUCTS FOREIGN KEY (order_detail_product_id) REFERENCES products(product_id) ON DELETE CASCADE ON UPDATE CASCADE)");
 		
+		/* for testing only; not needed any more
+		try {
+			if (dbPortal.executeNonQuery("INSERT INTO operators (operator_username, operator_password, operator_first_name, operator_last_name)" + 
+					" VALUES ('operator1', '" + Md5hashcalc.calculateMD5hash("operator1")  + "', '1', ' ')") != 1) {
+				
+				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+				dbPortal.disconnect();
+				dbPortal.finallize();
+				
+				JOptionPane.showMessageDialog(this, "       !\n     .", "      ", JOptionPane.ERROR_MESSAGE);
+				
+				return false;
+			}
+		}
+		catch (Exception ex) {
+			JOptionPane.showMessageDialog(this, "       MD5!", " ", 
+					JOptionPane.ERROR_MESSAGE);
+			System.exit(-1);
+		}*/
+		
 		return true;
-	}
-
+	}	
 }

programming_language: Java
filename: 20041debb45d001211398853d386ea7d
change_type: ModificationType.ADD
diff: @@ -0,0 +1,251 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JButton;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserSettingsWindow extends JFrame {
+	private static final long serialVersionUID = 3004L;
+
+	private final JLabel usernameLabel = new JLabel();
+	private final JLabel passwordLabel = new JLabel();
+	private final JLabel passwordAgainLabel = new JLabel();
+	private final JLabel nameLabel = new JLabel();
+	private final JLabel lastNameLabel = new JLabel();
+	private final JButton updateButton = new JButton();
+	private final JButton deleteOperator = new JButton();
+	private final JTextField firstNameTextField = new JTextField();
+	private final JTextField lastNameTextField = new JTextField();
+	private final JPasswordField passwordPasswordField = new JPasswordField();
+	private final JPasswordField passwordAgainPasswordField = new JPasswordField();	
+	
+	private String currentOperatorPassword = "";
+	public static String operatorFirstNameLastNameCombination = "";	
+	
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserSettingsWindow() {
+		super();
+		setBounds(100, 100, 314, 255);
+		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setResizable(false);
+		setAlwaysOnTop(true);
+		setTitle("  ");
+		setName("operatorUserSettings");
+		
+		getContentPane().add(usernameLabel);
+		usernameLabel.setText(":");
+		usernameLabel.setBounds(10, 0, 278, 16);
+		
+		getContentPane().add(passwordLabel);
+		passwordLabel.setText(":");
+		passwordLabel.setBounds(10, 76, 97, 16);
+		
+		getContentPane().add(passwordAgainLabel);
+		passwordAgainLabel.setText(" :");
+		passwordAgainLabel.setBounds(10, 95, 97, 16);
+		
+		getContentPane().add(nameLabel);
+		nameLabel.setText(":");
+		nameLabel.setBounds(10, 32, 97, 16);
+		
+		getContentPane().add(lastNameLabel);
+		lastNameLabel.setText(":");
+		lastNameLabel.setBounds(10, 54, 97, 16);
+		
+		getContentPane().add(updateButton);
+		updateButton.addActionListener(new UpdateButtonActionListener());
+		updateButton.setText("");
+		updateButton.setBounds(90, 130, 137, 26);
+		
+		getContentPane().add(firstNameTextField);
+		firstNameTextField.setBounds(113, 30, 175, 20);
+		
+		getContentPane().add(lastNameTextField);
+		lastNameTextField.setBounds(113, 52, 175, 20);
+		
+		getContentPane().add(passwordPasswordField);
+		passwordPasswordField.setBounds(113, 74, 175, 20);
+		
+		getContentPane().add(passwordAgainPasswordField);
+		passwordAgainPasswordField.setBounds(113, 97, 175, 20);
+		
+		getCurrentUserData();
+		
+		getContentPane().add(deleteOperator);
+		deleteOperator.addActionListener(new DeleteOperatorActionListener());
+		deleteOperator.setText(" ");
+		deleteOperator.setBounds(90, 189, 137, 26);
+	}
+	
+	private void getCurrentUserData() {
+		
+		if (databaseConnectWindow.dbPortal == null) {
+			return;
+		}
+		if (databaseConnectWindow.dbPortal.isConnected() == false) {
+			return;
+		}
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_username, operator_password, " + 
+				"operator_first_name, operator_last_name FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId);
+		
+		if ((rs == null) || (databaseConnectWindow.dbPortal.getLastError() != null)) {
+			return;
+		}
+		
+		try {
+			
+			usernameLabel.setText(": " + rs.getString(1));
+			currentOperatorPassword = rs.getString(2);
+			firstNameTextField.setText(rs.getString(3));
+			lastNameTextField.setText(rs.getString(4));
+		}
+		catch (Exception ex) {			
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+	}
+	
+	private class UpdateButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			updateButton_actionPerformed(e);
+		}
+	}
+	private class DeleteOperatorActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			deleteOperator_actionPerformed(e);
+		}
+	}
+	protected void updateButton_actionPerformed(ActionEvent e) {
+		
+		char[] pass = passwordPasswordField.getPassword();
+		String password = "";
+		
+		for (int i = 0; i < pass.length; i++) {
+			
+			password += pass[i];
+		}
+		
+		char[] pass2 = passwordAgainPasswordField.getPassword();
+		String password2 = "";
+		
+		for (int j = 0; j < pass2.length; j++) {
+			
+			password2 += pass2[j];
+		}
+		
+		if (password.compareTo(password2) != 0) {
+			
+			JOptionPane.showMessageDialog(this, "  !", "    ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		if (password.length() > 3) { //password update will be performed too
+			
+			try {
+				
+				password = Md5hashcalc.calculateMD5hash(password);
+				currentOperatorPassword = password;
+			}
+			catch (Exception ex) {
+				
+				JOptionPane.showMessageDialog(this, "       \n      !", "    ", JOptionPane.ERROR_MESSAGE);
+			}			
+		}
+		else {
+			if (password.length() > 0) {
+				
+				JOptionPane.showMessageDialog(this, "     4 !", "    ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		
+		if ((firstNameTextField.getText().length() <= 3) || (lastNameTextField.getText().length() <= 3)) {
+			
+			JOptionPane.showMessageDialog(this, "    !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		//FIXME prone to sql injection
+		if (databaseConnectWindow.dbPortal.executeNonQuery("UPDATE operators SET operator_password='" + currentOperatorPassword +
+				"', operator_first_name='" + firstNameTextField.getText() + "', operator_last_name='" + 
+				lastNameTextField.getText() + "' WHERE operator_id=" + operatorUserLoginWindow.loggedUserId) != 1) {
+		
+		//if (databaseConnectWindow.dbPortal.getLastError() != null) {
+			
+			JOptionPane.showMessageDialog(this, "    !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+		operatorUserLoginWindow.loggedUserNames = operatorFirstNameLastNameCombination; //in case
+		
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
+	}
+	
+	protected void deleteOperator_actionPerformed(ActionEvent e) {
+		
+		//we can not delete not existing operator
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		if (JOptionPane.showConfirmDialog(this, "       \n" + 
+				"  ,    .\n\n\t?", "   ", 
+				JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+			
+			if (databaseConnectWindow.dbPortal.executeNonQuery("DELETE FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId) != 1) {
+
+				JOptionPane.showMessageDialog(this, "  !", "   ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+			
+			operatorUserLoginWindow.loggedUserId = -1;
+			this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+		}
+		
+		return;
+	}
+
+}

programming_language: Java
filename: 40de69c5b25c00121e34961e0ace9d22
change_type: ModificationType.DELETE
diff: @@ -1,241 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.EventQueue;
-import java.awt.FlowLayout;
-import java.awt.GridLayout;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSeparator;
-import javax.swing.SpringLayout;
-import javax.swing.border.BevelBorder;
-import javax.swing.border.EtchedBorder;
-import org.jdesktop.layout.GroupLayout;
-import org.jdesktop.layout.LayoutStyle;
-import com.jgoodies.forms.factories.FormFactory;
-import com.jgoodies.forms.layout.CellConstraints;
-import com.jgoodies.forms.layout.ColumnSpec;
-import com.jgoodies.forms.layout.FormLayout;
-import com.jgoodies.forms.layout.RowSpec;
-
-public class mainWindow extends JFrame {
-
-	private final JMenuBar mainWindowMenu = new JMenuBar();
-	private final JMenu File = new JMenu();
-	private final JMenuItem FileConnectToDb = new JMenuItem();
-	private final JMenu Operations = new JMenu();
-	private final JMenu Help = new JMenu();
-	private final JMenuItem HelpAbout = new JMenuItem();
-	private final JMenuItem FileExit = new JMenuItem();
-	private static mainWindow mainWindowPointer;
-	
-	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
-	private final JPanel mainWindowStatusPanel = new JPanel();
-	private final JPanel panel = new JPanel();
-	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
-	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					mainWindow frame = new mainWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public mainWindow() {
-		super();
-		setBounds(100, 100, 682, 438);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		mainWindowPointer = this;
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//		
-	}
-	private void jbInit() throws Exception {
-		addWindowListener(new ThisWindowListener());
-		getContentPane().setLayout(new BorderLayout());
-		setTitle("eShop 1.00 (C) 2013   &  ");
-		setName("mainWindow");
-		
-		setJMenuBar(mainWindowMenu);
-		
-		mainWindowMenu.add(File);
-		File.setText("");
-		
-		File.add(FileConnectToDb);
-		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
-		FileConnectToDb.setText("   ");
-		
-		File.add(FileDisconnectFromDb);
-		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
-		FileDisconnectFromDb.setText("   ");
-		FileDisconnectFromDb.setEnabled(false);
-
-		File.addSeparator();
-		
-		File.add(FileExit);
-		FileExit.addActionListener(new FileExitActionListener());
-		FileExit.setText("");
-		
-		mainWindowMenu.add(Operations);
-		Operations.setText("");
-		Operations.setEnabled(false);
-		
-		mainWindowMenu.add(Help);
-		Help.setText("");
-		
-		Help.add(HelpAbout);
-		HelpAbout.setText("");
-		
-		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
-		mainWindowStatusPanel.setLayout(new FormLayout(
-			new ColumnSpec[] {
-				ColumnSpec.decode("149dlu"),
-				ColumnSpec.decode("72px"),
-				FormFactory.DEFAULT_COLSPEC},
-			new RowSpec[] {
-				FormFactory.RELATED_GAP_ROWSPEC,
-				RowSpec.decode("16px")}));
-		mainWindowStatusPanel.setSize(666, 25);
-		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
-		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
-		
-		mainWindowStatusPanelLoggedUserLabel.setText(":");
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
-		
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(2, 1, 1, 2));
-		mainWindowStatusPanelLoggedUserSettings.setText("");
-		mainWindowStatusPanelSetEnabled(false);
-	}
-	
-	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
-		
-		Component[] comps = mainWindowStatusPanel.getComponents();
-		
-		for (int i = 0; i < comps.length; i++) {
-		
-			comps[i].setEnabled(enable);	
-		}
-		
-		mainWindowStatusPanel.setEnabled(enable);
-	}
-	
-	private class ThisWindowListener extends WindowAdapter {
-		public void windowClosing(WindowEvent e) {
-			this_windowClosing(e);
-		}
-	}
-	private class FileExitActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileExit_actionPerformed(e);
-		}
-	}
-	private class FileConnectToDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileConnectToDb_actionPerformed(e);
-		}
-	}
-	private class FileDisconnectFromDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileDisconnectFromDb_actionPerformed(e);
-		}
-	}
-
-	protected void this_windowClosing(WindowEvent e) {
-		
-		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			if (databaseConnectWindow.dbPortal.isConnected()) {
-				
-				databaseConnectWindow.dbPortal.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
-			}
-		}
-		this.dispose();
-		//System.exit(0);
-	}
-	
-	protected void fileExit_actionPerformed(ActionEvent e) {
-
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
-	}
-	
-	////////////////////////////////////////////////////////////////////////
-	
-	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
-		
-		//databaseConnectWindow.main(null);
-		databaseConnectWindow dcw = new databaseConnectWindow();
-		dcw.setVisible(true);
-		dcw.addWindowListener(databaseConnectWindowClosing);
-	}
-	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
-		
-        public void windowClosing(WindowEvent e) {
-            
-        	e.getWindow().dispose(); 
-        	
-        	if (databaseConnectWindow.dbPortal != null) {
-    			
-    			if (databaseConnectWindow.dbPortal.isConnected()) {
-    				
-    				//FIXME mainWindowPointer.Operations.setEnabled(true);
-    				mainWindowPointer.mainWindowStatusPanelSetEnabled(true);
-    				mainWindowPointer.FileConnectToDb.setEnabled(false);
-    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
-    			}
-    			else {
-    				//FIXME mainWindowPointer.Operations.setEnabled(false);
-    				mainWindowPointer.mainWindowStatusPanelSetEnabled(false);
-    			}
-    		}            
-        }
-    };
-    
-    ////////////////////////////////////////////////////////////////////////
-    
-	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			databaseConnectWindow.dbPortal.finallize();
-			
-			this.FileConnectToDb.setEnabled(true);
-			this.FileDisconnectFromDb.setEnabled(false);			
-			this.Operations.setEnabled(false);
-			this.mainWindowStatusPanelSetEnabled(false);			
-		}
-	}
-	
-}

programming_language: unknown
filename: f086c342aa5d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,327 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.JButton;
+import javax.swing.WindowConstants;
+import javax.swing.border.TitledBorder;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserLoginWindow extends JFrame {
+	private static final long serialVersionUID = 3003L;
+
+	private final JPanel groupLoginPanel = new JPanel();
+	private final JPanel groupCreateNewUserPanel = new JPanel();
+	private final JLabel loginUsernameLabel = new JLabel();
+	private final JLabel loginPasswordLabel = new JLabel();
+	private final JButton loginButton = new JButton();
+	private final JTextField loginUsernameTextField = new JTextField();
+	private final JPasswordField loginPasswordPasswordField = new JPasswordField();
+	private final JLabel newUsernameLabel = new JLabel();
+	private final JLabel newPasswordLabel = new JLabel();
+	private final JLabel newUserFirstNameLabel = new JLabel();
+	private final JLabel newUserLastNameLabel = new JLabel();
+	private final JButton createNewOperatorButton = new JButton();
+	private final JTextField newUsernameTextField = new JTextField();
+	private final JTextField newFirstNameTextField = new JTextField();
+	private final JPasswordField newPasswordPasswordField = new JPasswordField();
+	private final JTextField newLastNameTextField = new JTextField();
+	
+	public static int loggedUserId = -1;
+	public static String loggedUserNames = "";
+	
+	private final JLabel newPasswordAgainLabel = new JLabel();
+	private final JPasswordField newPasswordPasswordAgainField = new JPasswordField();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserLoginWindow frame = new operatorUserLoginWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserLoginWindow() {
+		super();
+		setBounds(100, 100, 518, 242);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setTitle("  ");
+		setName("operatorLoginWindow");
+		setResizable(false);
+		setAlwaysOnTop(true);
+		
+		getContentPane().add(groupLoginPanel);
+		groupLoginPanel.setLayout(null);
+		groupLoginPanel.setBorder(new TitledBorder(null, ":", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupLoginPanel.setBounds(10, 10, 243, 133);
+		
+		groupLoginPanel.add(loginUsernameLabel);
+		loginUsernameLabel.setText(":");
+		loginUsernameLabel.setBounds(10, 31, 80, 16);
+		
+		groupLoginPanel.add(loginPasswordLabel);
+		loginPasswordLabel.setText(":");
+		loginPasswordLabel.setBounds(10, 53, 80, 16);
+		
+		groupLoginPanel.add(loginButton);
+		loginButton.addActionListener(new LoginButtonActionListener());
+		loginButton.setText("");
+		loginButton.setBounds(127, 93, 106, 26);
+		
+		groupLoginPanel.add(loginUsernameTextField);
+		loginUsernameTextField.setBounds(96, 29, 137, 20);
+		
+		groupLoginPanel.add(loginPasswordPasswordField);
+		loginPasswordPasswordField.setBounds(96, 51, 137, 20);
+		
+		getContentPane().add(groupCreateNewUserPanel);
+		groupCreateNewUserPanel.setLayout(null);
+		groupCreateNewUserPanel.setBorder(new TitledBorder(null, " :", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupCreateNewUserPanel.setBounds(259, 10, 243, 194);
+		
+		groupCreateNewUserPanel.add(newUsernameLabel);
+		newUsernameLabel.setText(" :");
+		newUsernameLabel.setBounds(10, 32, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordLabel);
+		newPasswordLabel.setText(":");
+		newPasswordLabel.setBounds(10, 54, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserFirstNameLabel);
+		newUserFirstNameLabel.setText(":");
+		newUserFirstNameLabel.setBounds(10, 98, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserLastNameLabel);
+		newUserLastNameLabel.setText(":");
+		newUserLastNameLabel.setBounds(10, 120, 95, 16);
+		
+		groupCreateNewUserPanel.add(createNewOperatorButton);
+		createNewOperatorButton.addActionListener(new CreateNewOperatorButtonActionListener());
+		createNewOperatorButton.setText("");
+		createNewOperatorButton.setBounds(127, 158, 106, 26);
+		
+		groupCreateNewUserPanel.add(newUsernameTextField);
+		newUsernameTextField.setBounds(111, 30, 122, 20);
+		
+		groupCreateNewUserPanel.add(newFirstNameTextField);
+		newFirstNameTextField.setBounds(111, 96, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordField);
+		newPasswordPasswordField.setBounds(111, 52, 122, 20);
+		
+		groupCreateNewUserPanel.add(newLastNameTextField);
+		newLastNameTextField.setBounds(111, 118, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordAgainLabel);
+		newPasswordAgainLabel.setText(" :");
+		newPasswordAgainLabel.setBounds(10, 76, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordAgainField);
+		newPasswordPasswordAgainField.setBounds(111, 75, 122, 20);
+	}
+	private class LoginButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			loginButton_actionPerformed(e);
+		}
+	}
+	private class CreateNewOperatorButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			createNewOperatorButton_actionPerformed(e);
+		}
+	}
+	
+	protected void loginButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				String password = "";
+				
+				char[] pass = loginPasswordPasswordField.getPassword();
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				//FIXME prone to sql injection
+				
+				ResultSet rs = null;
+				
+				try {				
+					
+					rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_id, operator_first_name, operator_last_name FROM operators WHERE" + 
+						" operator_username='" + loginUsernameTextField.getText() + "' AND operator_password='" +
+						Md5hashcalc.calculateMD5hash(password) + "'");
+				}
+				catch (Exception ex) {
+					System.exit(-1);
+				}
+				
+				if (rs != null) {
+					
+					try {
+						
+						loggedUserId = rs.getInt(1);
+						loggedUserNames = rs.getString(2) + " " + rs.getString(3);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", "  ", 
+								JOptionPane.ERROR_MESSAGE);
+						return;
+					}
+					
+					this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+				}
+				else {
+					JOptionPane.showMessageDialog(this, "   !", "  ", 
+							JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}		
+	}
+	
+	protected void createNewOperatorButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				char[] pass = newPasswordPasswordField.getPassword();
+				String password = "";
+				String encryptedPassword = "";
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				char[] pass2 = newPasswordPasswordAgainField.getPassword();
+				
+				if (pass.length == pass2.length) {
+				
+						for (int i = 0; i < pass.length; i++) {
+							
+							if (pass[i] != pass2[i]) {
+								
+								JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+								return;
+							}
+						}
+				}
+				else {
+				
+					JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+					return;
+				}
+								
+				if ((newUsernameTextField.getText().length() > 3) && (password.length() > 3) && 
+						(newFirstNameTextField.getText().length() > 3) && (newLastNameTextField.getText().length() > 3)) {
+					
+					try {
+						
+						encryptedPassword = Md5hashcalc.calculateMD5hash(password);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", " ", JOptionPane.ERROR_MESSAGE);
+						System.exit(-1);
+					}
+					
+					//FIXME prone to sql injection
+					ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT COUNT(*) FROM operators WHERE operator_username='" +
+							newUsernameTextField.getText() + "'");
+					
+					int usersCount = 0;
+					try {
+						
+						usersCount = rs.getInt(1);
+					}
+					catch (Exception ex) {						
+					}					
+					
+					if ((databaseConnectWindow.dbPortal.getLastError() == null) && (usersCount == 0)) {						
+						
+						//no such existing username so now we create it
+						//FIXME prone to sql injection
+						if (databaseConnectWindow.dbPortal.executeNonQuery("INSERT INTO operators(operator_username, operator_password, " +
+								"operator_first_name, operator_last_name) VALUES('" + newUsernameTextField.getText() + "', '" +
+								encryptedPassword + "', '" + newFirstNameTextField.getText() + "', '" + newLastNameTextField.getText() + "')") != 1) {
+							
+							JOptionPane.showMessageDialog(this, "     !", "", JOptionPane.ERROR_MESSAGE);
+						}
+						else { //everything ok so login now
+							
+							loginUsernameTextField.setText(newUsernameTextField.getText());
+							loginPasswordPasswordField.setText(password);
+							loginButton_actionPerformed(null);
+						}						
+					}
+					else {
+						
+						if (databaseConnectWindow.dbPortal.getLastError() != null) {
+							
+							JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);							
+						}
+						else {
+							
+							JOptionPane.showMessageDialog(this, "      .", "   ", JOptionPane.ERROR_MESSAGE);							
+						}
+					}					
+				}
+				else {
+					
+					JOptionPane.showMessageDialog(this, "    - !", " ", JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+		}		
+	}
+
+}

programming_language: Java
filename: 80cc88dcb65d001211398853d386ea7d
change_type: ModificationType.ADD
diff: @@ -0,0 +1,248 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JButton;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserSettingsWindow extends JFrame {
+	private static final long serialVersionUID = 3004L;
+
+	private final JLabel usernameLabel = new JLabel();
+	private final JLabel passwordLabel = new JLabel();
+	private final JLabel passwordAgainLabel = new JLabel();
+	private final JLabel nameLabel = new JLabel();
+	private final JLabel lastNameLabel = new JLabel();
+	private final JButton updateButton = new JButton();
+	private final JButton deleteOperator = new JButton();
+	private final JTextField firstNameTextField = new JTextField();
+	private final JTextField lastNameTextField = new JTextField();
+	private final JPasswordField passwordPasswordField = new JPasswordField();
+	private final JPasswordField passwordAgainPasswordField = new JPasswordField();	
+	
+	private String currentOperatorPassword = "";
+	public static String operatorFirstNameLastNameCombination = "";	
+	
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserSettingsWindow() {
+		super();
+		setBounds(100, 100, 314, 255);
+		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setResizable(false);
+		setAlwaysOnTop(true);
+		setTitle("  ");
+		setName("operatorUserSettings");
+		
+		getContentPane().add(usernameLabel);
+		usernameLabel.setText(":");
+		usernameLabel.setBounds(10, 0, 278, 16);
+		
+		getContentPane().add(passwordLabel);
+		passwordLabel.setText(":");
+		passwordLabel.setBounds(10, 76, 97, 16);
+		
+		getContentPane().add(passwordAgainLabel);
+		passwordAgainLabel.setText(" :");
+		passwordAgainLabel.setBounds(10, 95, 97, 16);
+		
+		getContentPane().add(nameLabel);
+		nameLabel.setText(":");
+		nameLabel.setBounds(10, 32, 97, 16);
+		
+		getContentPane().add(lastNameLabel);
+		lastNameLabel.setText(":");
+		lastNameLabel.setBounds(10, 54, 97, 16);
+		
+		getContentPane().add(updateButton);
+		updateButton.addActionListener(new UpdateButtonActionListener());
+		updateButton.setText("");
+		updateButton.setBounds(90, 130, 137, 26);
+		
+		getContentPane().add(firstNameTextField);
+		firstNameTextField.setBounds(113, 30, 175, 20);
+		
+		getContentPane().add(lastNameTextField);
+		lastNameTextField.setBounds(113, 52, 175, 20);
+		
+		getContentPane().add(passwordPasswordField);
+		passwordPasswordField.setBounds(113, 74, 175, 20);
+		
+		getContentPane().add(passwordAgainPasswordField);
+		passwordAgainPasswordField.setBounds(113, 97, 175, 20);
+		
+		getCurrentUserData();
+		
+		getContentPane().add(deleteOperator);
+		deleteOperator.addActionListener(new DeleteOperatorActionListener());
+		deleteOperator.setText(" ");
+		deleteOperator.setBounds(90, 189, 137, 26);
+	}
+	
+	private void getCurrentUserData() {
+		
+		if (databaseConnectWindow.dbPortal == null) {
+			return;
+		}
+		if (databaseConnectWindow.dbPortal.isConnected() == false) {
+			return;
+		}
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_username, operator_password, " + 
+				"operator_first_name, operator_last_name FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId);
+		
+		if ((rs == null) || (databaseConnectWindow.dbPortal.getLastError() != null)) {
+			return;
+		}
+		
+		try {
+			
+			usernameLabel.setText(": " + rs.getString(1));
+			currentOperatorPassword = rs.getString(2);
+			firstNameTextField.setText(rs.getString(3));
+			lastNameTextField.setText(rs.getString(4));
+		}
+		catch (Exception ex) {			
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+	}
+	
+	private class UpdateButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			updateButton_actionPerformed(e);
+		}
+	}
+	private class DeleteOperatorActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			deleteOperator_actionPerformed(e);
+		}
+	}
+	protected void updateButton_actionPerformed(ActionEvent e) {
+		
+		char[] pass = passwordPasswordField.getPassword();
+		String password = "";
+		
+		for (int i = 0; i < pass.length; i++) {
+			
+			password += pass[i];
+		}
+		
+		char[] pass2 = passwordAgainPasswordField.getPassword();
+		String password2 = "";
+		
+		for (int j = 0; j < pass2.length; j++) {
+			
+			password2 += pass2[j];
+		}
+		
+		if (password.compareTo(password2) != 0) {
+			
+			JOptionPane.showMessageDialog(this, "  !", "    ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		if (password.length() > 3) { //password update will be performed too
+			
+			try {
+				
+				password = Md5hashcalc.calculateMD5hash(password);
+				currentOperatorPassword = password;
+			}
+			catch (Exception ex) {
+				
+				JOptionPane.showMessageDialog(this, "       \n      !", "    ", JOptionPane.ERROR_MESSAGE);
+			}			
+		}
+		else {
+			if (password.length() > 0) {
+				
+				JOptionPane.showMessageDialog(this, "     4 !", "    ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		
+		if ((firstNameTextField.getText().length() <= 3) || (lastNameTextField.getText().length() <= 3)) {
+			
+			JOptionPane.showMessageDialog(this, "    !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		if (databaseConnectWindow.dbPortal.executeParameterizedNonQuery("UPDATE operators SET operator_password=?, " +
+				"operator_first_name=?, operator_last_name=? WHERE operator_id=?", currentOperatorPassword, 
+				firstNameTextField.getText(), lastNameTextField.getText(), new Integer(operatorUserLoginWindow.loggedUserId)) != 1) {
+		
+			JOptionPane.showMessageDialog(this, "    !" + databaseConnectWindow.dbPortal.getLastError(), "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+		operatorUserLoginWindow.loggedUserNames = operatorFirstNameLastNameCombination; //in case
+		
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
+	}
+	
+	protected void deleteOperator_actionPerformed(ActionEvent e) {
+		
+		//we can not delete not existing operator
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		if (JOptionPane.showConfirmDialog(this, "       \n" + 
+				"  ,    .\n\n\t?", "   ", 
+				JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+			
+			if (databaseConnectWindow.dbPortal.executeNonQuery("DELETE FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId) != 1) {
+
+				JOptionPane.showMessageDialog(this, "  !", "   ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+			
+			operatorUserLoginWindow.loggedUserId = -1;
+			this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+		}
+		
+		return;
+	}
+
+}

programming_language: Java
filename: f096a4cba35d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,263 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.WindowConstants;
+import javax.swing.JButton;
+import javax.swing.JOptionPane;
+
+import database_management.MySQLdbManager;
+import md5_calculator.Md5hashcalc;
+
+public class databaseConnectWindow extends JFrame {
+
+	private final JLabel label = new JLabel();
+	private final JLabel label_1 = new JLabel();
+	private final JLabel label_2 = new JLabel();
+	private final JLabel label_3 = new JLabel();
+	private final JLabel label_4 = new JLabel();
+	private final JButton connectToDatabaseButton = new JButton();
+	private final JTextField mysqlServerAddressTextField = new JTextField();
+	private final JTextField mysqlPortTextField = new JTextField();
+	private final JTextField mysqlDatabaseNameTextField = new JTextField();
+	private final JTextField mysqlUsernameTextField = new JTextField();
+	private final JPasswordField mysqlPasswordPasswordField = new JPasswordField();
+	public static MySQLdbManager dbPortal = null;
+	
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() { 
+			public void run() {
+				try {
+					databaseConnectWindow frame = new databaseConnectWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});		
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public databaseConnectWindow() {
+		super();
+		setBounds(100, 100, 384, 203);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setAlwaysOnTop(true);
+		setResizable(false);
+		setTitle("   ");
+		setName("databaseConnectWindowFrame");
+		
+		getContentPane().add(label);
+		label.setText("  MySQL :");
+		label.setBounds(10, 10, 165, 16);
+		
+		getContentPane().add(label_1);
+		label_1.setText("   :");
+		label_1.setBounds(10, 54, 165, 16);
+		
+		getContentPane().add(label_2);
+		label_2.setText(":");
+		label_2.setBounds(10, 32, 156, 16);
+		
+		getContentPane().add(label_3);
+		label_3.setText(" :");
+		label_3.setBounds(10, 76, 165, 16);
+		
+		getContentPane().add(label_4);
+		label_4.setText(":");
+		label_4.setBounds(10, 98, 156, 16);
+		
+		getContentPane().add(connectToDatabaseButton);
+		connectToDatabaseButton.addActionListener(new ConnectToDatabaseButtonActionListener());
+		connectToDatabaseButton.setText(" !");
+		connectToDatabaseButton.setBounds(132, 135, 106, 26);
+		
+		getContentPane().add(mysqlServerAddressTextField);
+		mysqlServerAddressTextField.setText("127.0.0.1");
+		mysqlServerAddressTextField.setBounds(181, 8, 185, 20);
+		
+		getContentPane().add(mysqlPortTextField);
+		mysqlPortTextField.setText("3306");
+		mysqlPortTextField.setBounds(181, 30, 91, 20);
+		
+		getContentPane().add(mysqlDatabaseNameTextField);
+		mysqlDatabaseNameTextField.setText("shop");
+		mysqlDatabaseNameTextField.setBounds(181, 52, 181, 20);
+		
+		getContentPane().add(mysqlUsernameTextField);
+		mysqlUsernameTextField.setText("root");
+		mysqlUsernameTextField.setBounds(181, 76, 180, 18);
+		
+		getContentPane().add(mysqlPasswordPasswordField);
+		mysqlPasswordPasswordField.setBounds(181, 96, 181, 20);
+	}
+	private class ConnectToDatabaseButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			connectToDatabaseButton_actionPerformed(e);
+		}
+	}
+
+	protected void connectToDatabaseButton_actionPerformed(ActionEvent e) {
+		
+		String password = "";
+		
+		char [] pass = mysqlPasswordPasswordField.getPassword();
+		for (int i = 0; i < pass.length; i++) {
+			
+			password += pass[i];
+		}
+		
+		dbPortal = new MySQLdbManager(mysqlServerAddressTextField.getText(),
+				mysqlDatabaseNameTextField.getText(), Integer.parseInt(mysqlPortTextField.getText()),
+				mysqlUsernameTextField.getText(), password);		
+		
+		
+		if (dbPortal.connect() == false) { //now check for database name that is not existing
+			
+			dbPortal.setMySqlActiveDatabase("");
+			dbPortal.disconnect(); //just in case
+			
+			if (dbPortal.connect() == false) { //connection settings problem or not running MySQL server
+				dbPortal.finalize();
+				JOptionPane.showMessageDialog(this, "  !     MySQL   !", 
+						"  !", JOptionPane.ERROR_MESSAGE);
+				
+				return;
+			}
+			else { //will have to create new database
+				
+				dbPortal.disconnect();
+				
+				if (JOptionPane.showConfirmDialog(this, "       : " + mysqlDatabaseNameTextField.getText() +
+						".\n  ?", "    ?", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+					
+					if (createNewDatabaseAndTables() == false) { //in case of fail do not close this window
+						
+						return;
+					}
+				}
+				else {
+				
+					dbPortal.finalize();
+					return;
+				}
+				
+				this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+			}			
+		}
+		
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
+	}
+	
+	private boolean createNewDatabaseAndTables() {
+		
+		if (dbPortal.connect() == false) {
+			
+			JOptionPane.showMessageDialog(this, "   (1)!     MySQL   !", 
+					"  !", JOptionPane.ERROR_MESSAGE);			
+			dbPortal.finalize();
+			return false;
+		}
+		
+		//FIXME prone to sql injection
+		
+		Object[] dbName = new String[1];
+		dbName[0] = mysqlDatabaseNameTextField.getText(); 
+		
+		if (dbPortal.executeParameterizedNonQuery("CREATE DATABASE ? COLLATE utf8_general_ci", dbName) != 1) {
+			
+			dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+			dbPortal.finalize();
+			JOptionPane.showMessageDialog(this, "      !\n     !", 
+					"     !", JOptionPane.ERROR_MESSAGE);
+			return false;
+		}
+		
+		/*if (dbPortal.executeNonQuery("CREATE DATABASE " + mysqlDatabaseNameTextField.getText() + " COLLATE utf8_general_ci") != 1) {
+			
+			dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+			dbPortal.finalize();
+			JOptionPane.showMessageDialog(this, "      !\n     !", 
+					"     !", JOptionPane.ERROR_MESSAGE);
+			return false;
+		}*/
+		
+		dbPortal.setMySqlActiveDatabase(mysqlDatabaseNameTextField.getText());
+		dbPortal.disconnect();
+		
+		if (dbPortal.connect() == false) { //false positive for database creation
+			
+			dbPortal.setMySqlActiveDatabase("");
+			dbPortal.disconnect();
+			
+			if (dbPortal.connect()) {
+				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+				dbPortal.disconnect();
+			}			
+			
+			JOptionPane.showMessageDialog(this, "   (2)!     MySQL   !", 
+					"  !", JOptionPane.ERROR_MESSAGE);			
+			dbPortal.finalize();
+			return false;
+		}
+		
+		dbPortal.executeNonQuery("CREATE TABLE operators (operator_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"operator_username nvarchar(20) NOT NULL, operator_password nvarchar(64) NOT NULL," + 
+				"operator_first_name nvarchar(20) NOT NULL, operator_last_name nvarchar(20) NOT NULL)");
+		
+		dbPortal.executeNonQuery("CREATE TABLE orders (order_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"order_time datetime NOT NULL, order_operator_id int NOT NULL," +
+				"CONSTRAINT FK_OPERATORS FOREIGN KEY (order_operator_id) REFERENCES operators(operator_id) ON DELETE CASCADE ON UPDATE CASCADE)");
+
+		dbPortal.executeNonQuery("CREATE TABLE products (product_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"product_name nvarchar(30) NOT NULL, product_quantity int NOT NULL,	product_price decimal(10,2) NOT NULL)");
+
+		dbPortal.executeNonQuery("CREATE TABLE order_details (order_detail_id int NOT NULL AUTO_INCREMENT primary key," + 
+				"order_detail_order_id int NOT NULL, order_detail_product_id int NOT NULL, " +
+				"order_detail_product_quantity int NOT NULL," +
+				"CONSTRAINT FK_ORDERS FOREIGN KEY (order_detail_order_id) REFERENCES orders(order_id) ON DELETE CASCADE ON UPDATE CASCADE," +
+				"CONSTRAINT FK_PRODUCTS FOREIGN KEY (order_detail_product_id) REFERENCES products(product_id) ON DELETE CASCADE ON UPDATE CASCADE)");
+		
+		/* for testing only; not needed any more
+		try {
+			if (dbPortal.executeNonQuery("INSERT INTO operators (operator_username, operator_password, operator_first_name, operator_last_name)" + 
+					" VALUES ('operator1', '" + Md5hashcalc.calculateMD5hash("operator1")  + "', '1', ' ')") != 1) {
+				
+				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
+				dbPortal.disconnect();
+				dbPortal.finallize();
+				
+				JOptionPane.showMessageDialog(this, "       !\n     .", "      ", JOptionPane.ERROR_MESSAGE);
+				
+				return false;
+			}
+		}
+		catch (Exception ex) {
+			JOptionPane.showMessageDialog(this, "       MD5!", " ", 
+					JOptionPane.ERROR_MESSAGE);
+			System.exit(-1);
+		}*/
+		
+		return true;
+	}	
+}

programming_language: Java
filename: 808cfa98a55d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,571 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return int the number of affected things
+	 */
+	
+	public int executeParameterizedNonQuery(String query, Object[] parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		//TODO...
+		// boolean - ok
+		// String  - ok
+		// char    - 
+		// byte    -
+		// short   -
+		// int     -
+		// long    -
+		// double  -
+		// float   -
+		// Date    -
+		// null ???
+		
+		try {
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i, parameters[i]);
+				
+				/*if (parameters[i] instanceof Boolean) {
+					
+					sqlStatement.setBoolean(i, ((Boolean)parameters[i]).booleanValue());
+					continue;
+				}
+				if (parameters[i] instanceof String) {
+					
+					sqlStatement.setString(i, ((String)parameters[i].toString()));
+					continue;
+				}
+				if (parameters[i] instanceof Character) {
+					
+					sqlStatement.set
+				}*/
+			}
+			
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Executes parameterized query and returns ResultSet with data. For SELECT...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeParameterizedQuery(String query, Object[] parameters) { //executes query and returns ResultSet 
+		
+		PreparedStatement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i, parameters[i]);
+			}
+			
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: a03b43f5a45d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,390 @@
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.EventQueue;
+import java.awt.Insets;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.awt.event.WindowListener;
+import javax.swing.JButton;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.border.EtchedBorder;
+import com.jgoodies.forms.factories.FormFactory;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.ColumnSpec;
+import com.jgoodies.forms.layout.FormLayout;
+import com.jgoodies.forms.layout.RowSpec;
+
+
+public class mainWindow extends JFrame {
+
+	private final JMenuBar mainWindowMenu = new JMenuBar();
+	private final JMenu File = new JMenu();
+	private final JMenuItem FileConnectToDb = new JMenuItem();
+	private final JMenu Operations = new JMenu();
+	private final JMenu Help = new JMenu();
+	private final JMenuItem HelpAbout = new JMenuItem();
+	private final JMenuItem FileExit = new JMenuItem();
+	private static mainWindow mainWindowPointer;
+	
+	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
+	private final JPanel mainWindowStatusPanel = new JPanel();
+	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogin = new JButton();
+	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
+
+	private final JLabel mainWindowStatusPanelSeparatorLabel = new JLabel();
+	private final JLabel mainWindowStatusPanelSeparatorLabel2 = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogout = new JButton();
+	
+	private final JMenuItem operationsProductsManagement = new JMenuItem();
+	private final JMenuItem operationsOrdersManagement = new JMenuItem();
+	private final JMenuItem operationsNewOrder = new JMenuItem();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					mainWindow frame = new mainWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public mainWindow() {
+		super();
+		setBounds(100, 100, 682, 438);
+		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		mainWindowPointer = this;
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//		
+	}
+	private void jbInit() throws Exception {
+		addWindowListener(new ThisWindowListener());
+		getContentPane().setLayout(new BorderLayout());
+		setTitle("eShop 1.00 (C) 2013   &  ");
+		setName("mainWindow");
+		
+		setJMenuBar(mainWindowMenu);
+		
+		mainWindowMenu.add(File);
+		File.setText("");
+		
+		File.add(FileConnectToDb);
+		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
+		FileConnectToDb.setText("   ");
+		
+		File.add(FileDisconnectFromDb);
+		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
+		FileDisconnectFromDb.setText("   ");
+		FileDisconnectFromDb.setEnabled(false);
+
+		File.addSeparator();
+		
+		File.add(FileExit);
+		FileExit.addActionListener(new FileExitActionListener());
+		FileExit.setText("");
+		
+		mainWindowMenu.add(Operations);
+		Operations.setText("");
+		Operations.setEnabled(false);
+		
+		Operations.add(operationsNewOrder);
+		operationsNewOrder.addActionListener(new OperationsNewOrderActionListener());
+		operationsNewOrder.setText(" ");
+
+		Operations.addSeparator();
+		
+		Operations.add(operationsProductsManagement);
+		operationsProductsManagement.addActionListener(new OperationsProductsManagementActionListener());
+		operationsProductsManagement.setText("  ");
+		
+		Operations.add(operationsOrdersManagement);
+		operationsOrdersManagement.addActionListener(new OperationsOrdersManagementActionListener());
+		operationsOrdersManagement.setText("  ");
+		
+		mainWindowMenu.add(Help);
+		Help.setText("");
+		
+		Help.add(HelpAbout);
+		HelpAbout.addActionListener(new HelpAboutActionListener());
+		HelpAbout.setText("");
+		
+		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
+		mainWindowStatusPanel.setLayout(new FormLayout(
+			new ColumnSpec[] {
+				ColumnSpec.decode("149dlu"),
+				ColumnSpec.decode("72px"),
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC},
+			new RowSpec[] {
+				FormFactory.RELATED_GAP_ROWSPEC,
+				RowSpec.decode("16px")}));
+		mainWindowStatusPanel.setSize(666, 25);
+		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
+		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
+		
+		mainWindowStatusPanelLoggedUserLabel.setText(":");
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogin, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogin.addActionListener(new MainWindowStatusPanelLoggedUserLoginActionListener());
+		mainWindowStatusPanelLoggedUserLogin.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(4, 1, 1, 2, CellConstraints.CENTER, CellConstraints.DEFAULT));
+		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
+		mainWindowStatusPanelLoggedUserSettings.setMargin(new Insets(2, 14, 2, 14));
+		mainWindowStatusPanelLoggedUserSettings.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel, new CellConstraints(3, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel2, new CellConstraints(5, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel2.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogout, new CellConstraints(6, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogout.addActionListener(new MainWindowStatusPanelLoggedUserLogoutActionListener());
+		mainWindowStatusPanelLoggedUserLogout.setText("");
+		mainWindowStatusPanelSetEnabled(false);
+	}
+	
+	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
+		
+		Component[] comps = mainWindowStatusPanel.getComponents();
+		
+		for (int i = 0; i < comps.length; i++) {
+		
+			comps[i].setEnabled(enable);	
+		}
+		
+		mainWindowStatusPanel.setEnabled(enable);
+	}
+	
+	private class ThisWindowListener extends WindowAdapter {
+		public void windowClosing(WindowEvent e) {
+			this_windowClosing(e);
+		}
+	}
+	private class FileExitActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileExit_actionPerformed(e);
+		}
+	}
+	private class FileConnectToDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileConnectToDb_actionPerformed(e);
+		}
+	}
+	private class FileDisconnectFromDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileDisconnectFromDb_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogin_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLogoutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogout_actionPerformed(e);
+		}
+	}
+	private class HelpAboutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			helpAbout_actionPerformed(e);
+		}
+	}
+	private class OperationsProductsManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsProductsManagement_actionPerformed(e);
+		}
+	}
+	private class OperationsNewOrderActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsNewOrder_actionPerformed(e);
+		}
+	}
+	private class OperationsOrdersManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsOrdersManagement_actionPerformed(e);
+		}
+	}
+
+	protected void this_windowClosing(WindowEvent e) {
+		
+		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				databaseConnectWindow.dbPortal.finalize();
+			}
+		}
+		this.dispose();
+		//System.exit(0);
+	}
+	
+	protected void fileExit_actionPerformed(ActionEvent e) {
+
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
+		
+		databaseConnectWindow dcw = new databaseConnectWindow();
+		dcw.setVisible(true);
+		dcw.addWindowListener(databaseConnectWindowClosing);
+	}
+	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
+		
+        public void windowClosing(WindowEvent e) {
+            
+        	e.getWindow().dispose(); 
+        	
+        	if (databaseConnectWindow.dbPortal != null) {
+    			
+    			if (databaseConnectWindow.dbPortal.isConnected()) {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(true);
+    				mainWindowPointer.FileConnectToDb.setEnabled(false);
+    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
+    			}
+    			else {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(false);
+    			}
+    		}            
+        }
+    };
+    
+    ////////////////////////////////////////////////////////////////////////
+    
+	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			databaseConnectWindow.dbPortal.finalize();
+			
+			this.FileConnectToDb.setEnabled(true);
+			this.FileDisconnectFromDb.setEnabled(false);			
+			this.Operations.setEnabled(false);
+			this.mainWindowStatusPanelSetEnabled(false);	
+			this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			operatorUserLoginWindow.loggedUserId = -1;
+		}
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
+		
+		operatorUserLoginWindow oul = new operatorUserLoginWindow();
+		oul.setVisible(true);
+		oul.addWindowListener(operatorUserLoginWindowClosing);
+	}
+	private static WindowListener operatorUserLoginWindowClosing = new WindowAdapter() {
+
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.Operations.setEnabled(true);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserLoginWindow.loggedUserNames);
+			}
+			else {
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+		
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+		
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		operatorUserSettingsWindow ousw = new operatorUserSettingsWindow();
+		ousw.setVisible(true);
+		ousw.addWindowListener(operatorUserSettingsWindowClosing);
+	}
+	
+	private static WindowListener operatorUserSettingsWindowClosing = new WindowAdapter() {
+		
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserSettingsWindow.operatorFirstNameLastNameCombination);
+			}
+			else { //if operator was deleted
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogout_actionPerformed(ActionEvent e) {
+		
+		this.Operations.setEnabled(false);
+		this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+		operatorUserLoginWindow.loggedUserId = -1;
+	}
+	
+	protected void helpAbout_actionPerformed(ActionEvent e) {
+		
+		JOptionPane.showMessageDialog(this, "eShop ver.-1.00\n(C) 2013   &  ", "", JOptionPane.INFORMATION_MESSAGE);
+	}
+	
+	protected void operationsProductsManagement_actionPerformed(ActionEvent e) {
+		//TODO...		
+	}
+	protected void operationsNewOrder_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	protected void operationsOrdersManagement_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	
+	
+	
+	
+}

programming_language: Java
filename: 90b2a96db55c00121e34961e0ace9d22
change_type: ModificationType.DELETE
diff: @@ -1,250 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.EventQueue;
-import java.awt.FlowLayout;
-import java.awt.GridLayout;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSeparator;
-import javax.swing.SpringLayout;
-import javax.swing.border.BevelBorder;
-import javax.swing.border.EtchedBorder;
-import org.jdesktop.layout.GroupLayout;
-import org.jdesktop.layout.LayoutStyle;
-import com.jgoodies.forms.factories.FormFactory;
-import com.jgoodies.forms.layout.CellConstraints;
-import com.jgoodies.forms.layout.ColumnSpec;
-import com.jgoodies.forms.layout.FormLayout;
-import com.jgoodies.forms.layout.RowSpec;
-
-public class mainWindow extends JFrame {
-
-	private final JMenuBar mainWindowMenu = new JMenuBar();
-	private final JMenu File = new JMenu();
-	private final JMenuItem FileConnectToDb = new JMenuItem();
-	private final JMenu Operations = new JMenu();
-	private final JMenu Help = new JMenu();
-	private final JMenuItem HelpAbout = new JMenuItem();
-	private final JMenuItem FileExit = new JMenuItem();
-	private static mainWindow mainWindowPointer;
-	
-	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
-	private final JPanel mainWindowStatusPanel = new JPanel();
-	private final JPanel panel = new JPanel();
-	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
-	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					mainWindow frame = new mainWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public mainWindow() {
-		super();
-		setBounds(100, 100, 682, 438);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		mainWindowPointer = this;
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//		
-	}
-	private void jbInit() throws Exception {
-		addWindowListener(new ThisWindowListener());
-		getContentPane().setLayout(new BorderLayout());
-		setTitle("eShop 1.00 (C) 2013   &  ");
-		setName("mainWindow");
-		
-		setJMenuBar(mainWindowMenu);
-		
-		mainWindowMenu.add(File);
-		File.setText("");
-		
-		File.add(FileConnectToDb);
-		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
-		FileConnectToDb.setText("   ");
-		
-		File.add(FileDisconnectFromDb);
-		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
-		FileDisconnectFromDb.setText("   ");
-		FileDisconnectFromDb.setEnabled(false);
-
-		File.addSeparator();
-		
-		File.add(FileExit);
-		FileExit.addActionListener(new FileExitActionListener());
-		FileExit.setText("");
-		
-		mainWindowMenu.add(Operations);
-		Operations.setText("");
-		Operations.setEnabled(false);
-		
-		mainWindowMenu.add(Help);
-		Help.setText("");
-		
-		Help.add(HelpAbout);
-		HelpAbout.setText("");
-		
-		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
-		mainWindowStatusPanel.setLayout(new FormLayout(
-			new ColumnSpec[] {
-				ColumnSpec.decode("149dlu"),
-				ColumnSpec.decode("72px"),
-				FormFactory.DEFAULT_COLSPEC},
-			new RowSpec[] {
-				FormFactory.RELATED_GAP_ROWSPEC,
-				RowSpec.decode("16px")}));
-		mainWindowStatusPanel.setSize(666, 25);
-		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
-		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
-		
-		mainWindowStatusPanelLoggedUserLabel.setText(":");
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
-		
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(2, 1, 1, 2));
-		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
-		mainWindowStatusPanelLoggedUserSettings.setText("");
-		mainWindowStatusPanelSetEnabled(false);
-	}
-	
-	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
-		
-		Component[] comps = mainWindowStatusPanel.getComponents();
-		
-		for (int i = 0; i < comps.length; i++) {
-		
-			comps[i].setEnabled(enable);	
-		}
-		
-		mainWindowStatusPanel.setEnabled(enable);
-	}
-	
-	private class ThisWindowListener extends WindowAdapter {
-		public void windowClosing(WindowEvent e) {
-			this_windowClosing(e);
-		}
-	}
-	private class FileExitActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileExit_actionPerformed(e);
-		}
-	}
-	private class FileConnectToDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileConnectToDb_actionPerformed(e);
-		}
-	}
-	private class FileDisconnectFromDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileDisconnectFromDb_actionPerformed(e);
-		}
-	}
-	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
-		}
-	}
-
-	protected void this_windowClosing(WindowEvent e) {
-		
-		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			if (databaseConnectWindow.dbPortal.isConnected()) {
-				
-				databaseConnectWindow.dbPortal.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
-			}
-		}
-		this.dispose();
-		//System.exit(0);
-	}
-	
-	protected void fileExit_actionPerformed(ActionEvent e) {
-
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
-	}
-	
-	////////////////////////////////////////////////////////////////////////
-	
-	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
-		
-		//databaseConnectWindow.main(null);
-		databaseConnectWindow dcw = new databaseConnectWindow();
-		dcw.setVisible(true);
-		dcw.addWindowListener(databaseConnectWindowClosing);
-	}
-	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
-		
-        public void windowClosing(WindowEvent e) {
-            
-        	e.getWindow().dispose(); 
-        	
-        	if (databaseConnectWindow.dbPortal != null) {
-    			
-    			if (databaseConnectWindow.dbPortal.isConnected()) {
-    				
-    				//FIXME mainWindowPointer.Operations.setEnabled(true);
-    				mainWindowPointer.mainWindowStatusPanelSetEnabled(true);
-    				mainWindowPointer.FileConnectToDb.setEnabled(false);
-    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
-    			}
-    			else {
-    				//FIXME mainWindowPointer.Operations.setEnabled(false);
-    				mainWindowPointer.mainWindowStatusPanelSetEnabled(false);
-    			}
-    		}            
-        }
-    };
-    
-    ////////////////////////////////////////////////////////////////////////
-    
-	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			databaseConnectWindow.dbPortal.finallize();
-			
-			this.FileConnectToDb.setEnabled(true);
-			this.FileDisconnectFromDb.setEnabled(false);			
-			this.Operations.setEnabled(false);
-			this.mainWindowStatusPanelSetEnabled(false);			
-		}
-	}
-	
-	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
-	}
-	
-}

programming_language: unknown
filename: 40b444ccb35d001211398853d386ea7d
change_type: ModificationType.ADD
diff: @@ -0,0 +1,325 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.JButton;
+import javax.swing.WindowConstants;
+import javax.swing.border.TitledBorder;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserLoginWindow extends JFrame {
+	private static final long serialVersionUID = 3003L;
+
+	private final JPanel groupLoginPanel = new JPanel();
+	private final JPanel groupCreateNewUserPanel = new JPanel();
+	private final JLabel loginUsernameLabel = new JLabel();
+	private final JLabel loginPasswordLabel = new JLabel();
+	private final JButton loginButton = new JButton();
+	private final JTextField loginUsernameTextField = new JTextField();
+	private final JPasswordField loginPasswordPasswordField = new JPasswordField();
+	private final JLabel newUsernameLabel = new JLabel();
+	private final JLabel newPasswordLabel = new JLabel();
+	private final JLabel newUserFirstNameLabel = new JLabel();
+	private final JLabel newUserLastNameLabel = new JLabel();
+	private final JButton createNewOperatorButton = new JButton();
+	private final JTextField newUsernameTextField = new JTextField();
+	private final JTextField newFirstNameTextField = new JTextField();
+	private final JPasswordField newPasswordPasswordField = new JPasswordField();
+	private final JTextField newLastNameTextField = new JTextField();
+	
+	public static int loggedUserId = -1;
+	public static String loggedUserNames = "";
+	
+	private final JLabel newPasswordAgainLabel = new JLabel();
+	private final JPasswordField newPasswordPasswordAgainField = new JPasswordField();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserLoginWindow frame = new operatorUserLoginWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserLoginWindow() {
+		super();
+		setBounds(100, 100, 518, 242);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setTitle("  ");
+		setName("operatorLoginWindow");
+		setResizable(false);
+		setAlwaysOnTop(true);
+		
+		getContentPane().add(groupLoginPanel);
+		groupLoginPanel.setLayout(null);
+		groupLoginPanel.setBorder(new TitledBorder(null, ":", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupLoginPanel.setBounds(10, 10, 243, 133);
+		
+		groupLoginPanel.add(loginUsernameLabel);
+		loginUsernameLabel.setText(":");
+		loginUsernameLabel.setBounds(10, 31, 80, 16);
+		
+		groupLoginPanel.add(loginPasswordLabel);
+		loginPasswordLabel.setText(":");
+		loginPasswordLabel.setBounds(10, 53, 80, 16);
+		
+		groupLoginPanel.add(loginButton);
+		loginButton.addActionListener(new LoginButtonActionListener());
+		loginButton.setText("");
+		loginButton.setBounds(127, 93, 106, 26);
+		
+		groupLoginPanel.add(loginUsernameTextField);
+		loginUsernameTextField.setBounds(96, 29, 137, 20);
+		
+		groupLoginPanel.add(loginPasswordPasswordField);
+		loginPasswordPasswordField.setBounds(96, 51, 137, 20);
+		
+		getContentPane().add(groupCreateNewUserPanel);
+		groupCreateNewUserPanel.setLayout(null);
+		groupCreateNewUserPanel.setBorder(new TitledBorder(null, " :", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupCreateNewUserPanel.setBounds(259, 10, 243, 194);
+		
+		groupCreateNewUserPanel.add(newUsernameLabel);
+		newUsernameLabel.setText(" :");
+		newUsernameLabel.setBounds(10, 32, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordLabel);
+		newPasswordLabel.setText(":");
+		newPasswordLabel.setBounds(10, 54, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserFirstNameLabel);
+		newUserFirstNameLabel.setText(":");
+		newUserFirstNameLabel.setBounds(10, 98, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserLastNameLabel);
+		newUserLastNameLabel.setText(":");
+		newUserLastNameLabel.setBounds(10, 120, 95, 16);
+		
+		groupCreateNewUserPanel.add(createNewOperatorButton);
+		createNewOperatorButton.addActionListener(new CreateNewOperatorButtonActionListener());
+		createNewOperatorButton.setText("");
+		createNewOperatorButton.setBounds(127, 158, 106, 26);
+		
+		groupCreateNewUserPanel.add(newUsernameTextField);
+		newUsernameTextField.setBounds(111, 30, 122, 20);
+		
+		groupCreateNewUserPanel.add(newFirstNameTextField);
+		newFirstNameTextField.setBounds(111, 96, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordField);
+		newPasswordPasswordField.setBounds(111, 52, 122, 20);
+		
+		groupCreateNewUserPanel.add(newLastNameTextField);
+		newLastNameTextField.setBounds(111, 118, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordAgainLabel);
+		newPasswordAgainLabel.setText(" :");
+		newPasswordAgainLabel.setBounds(10, 76, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordAgainField);
+		newPasswordPasswordAgainField.setBounds(111, 75, 122, 20);
+	}
+	private class LoginButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			loginButton_actionPerformed(e);
+		}
+	}
+	private class CreateNewOperatorButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			createNewOperatorButton_actionPerformed(e);
+		}
+	}
+	
+	protected void loginButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				String password = "";
+				
+				char[] pass = loginPasswordPasswordField.getPassword();
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				ResultSet rs = null;
+				
+				try {				
+					
+					rs = databaseConnectWindow.dbPortal.executeParameterizedQuery("SELECT operator_id, operator_first_name, " + "" +
+							"operator_last_name FROM operators WHERE operator_username = ? AND operator_password = ?", 
+							loginUsernameTextField.getText(), Md5hashcalc.calculateMD5hash(password));							
+				}
+				catch (Exception ex) {
+					System.exit(-1);
+				}
+				
+				if (rs != null) {
+					
+					try {
+						
+						loggedUserId = rs.getInt(1);
+						loggedUserNames = rs.getString(2) + " " + rs.getString(3);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", "  ", 
+								JOptionPane.ERROR_MESSAGE);
+						return;
+					}
+					
+					this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+				}
+				else {
+					JOptionPane.showMessageDialog(this, "   !", "  ", 
+							JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}		
+	}
+	
+	protected void createNewOperatorButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				char[] pass = newPasswordPasswordField.getPassword();
+				String password = "";
+				String encryptedPassword = "";
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				char[] pass2 = newPasswordPasswordAgainField.getPassword();
+				
+				if (pass.length == pass2.length) {
+				
+						for (int i = 0; i < pass.length; i++) {
+							
+							if (pass[i] != pass2[i]) {
+								
+								JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+								return;
+							}
+						}
+				}
+				else {
+				
+					JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+					return;
+				}
+								
+				if ((newUsernameTextField.getText().length() > 3) && (password.length() > 3) && 
+						(newFirstNameTextField.getText().length() > 3) && (newLastNameTextField.getText().length() > 3)) {
+					
+					try {
+						
+						encryptedPassword = Md5hashcalc.calculateMD5hash(password);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", " ", JOptionPane.ERROR_MESSAGE);
+						System.exit(-1);
+					}
+					
+					//FIXME prone to sql injection
+					ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT COUNT(*) FROM operators WHERE operator_username='" +
+							newUsernameTextField.getText() + "'");
+					
+					int usersCount = 0;
+					try {
+						
+						usersCount = rs.getInt(1);
+					}
+					catch (Exception ex) {						
+					}					
+					
+					if ((databaseConnectWindow.dbPortal.getLastError() == null) && (usersCount == 0)) {						
+						
+						//no such existing username so now we create it
+						//FIXME prone to sql injection
+						if (databaseConnectWindow.dbPortal.executeNonQuery("INSERT INTO operators(operator_username, operator_password, " +
+								"operator_first_name, operator_last_name) VALUES('" + newUsernameTextField.getText() + "', '" +
+								encryptedPassword + "', '" + newFirstNameTextField.getText() + "', '" + newLastNameTextField.getText() + "')") != 1) {
+							
+							JOptionPane.showMessageDialog(this, "     !", "", JOptionPane.ERROR_MESSAGE);
+						}
+						else { //everything ok so login now
+							
+							loginUsernameTextField.setText(newUsernameTextField.getText());
+							loginPasswordPasswordField.setText(password);
+							loginButton_actionPerformed(null);
+						}						
+					}
+					else {
+						
+						if (databaseConnectWindow.dbPortal.getLastError() != null) {
+							
+							JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);							
+						}
+						else {
+							
+							JOptionPane.showMessageDialog(this, "      .", "   ", JOptionPane.ERROR_MESSAGE);							
+						}
+					}					
+				}
+				else {
+					
+					JOptionPane.showMessageDialog(this, "    - !", " ", JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+		}		
+	}
+
+}

programming_language: Java
filename: 60ea091bb35d001211398853d386ea7d
change_type: ModificationType.ADD
diff: @@ -0,0 +1,572 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return int the number of affected things
+	 */
+	
+	public int executeParameterizedNonQuery(String query, Object... parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		//TODO...
+		// boolean - ok
+		// String  - ok
+		// char    - 
+		// byte    -
+		// short   -
+		// int     -
+		// long    -
+		// double  -
+		// float   -
+		// Date    -
+		// null ???
+		
+		try {
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i + 1, parameters[i]);
+				
+				/*if (parameters[i] instanceof Boolean) {
+					
+					sqlStatement.setBoolean(i, ((Boolean)parameters[i]).booleanValue());
+					continue;
+				}
+				if (parameters[i] instanceof String) {
+					
+					sqlStatement.setString(i, ((String)parameters[i].toString()));
+					continue;
+				}
+				if (parameters[i] instanceof Character) {
+					
+					sqlStatement.set
+				}*/
+			}
+			
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Executes parameterized query and returns ResultSet with data. For SELECT...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeParameterizedQuery(String query, Object... parameters) { //executes query and returns ResultSet 
+		
+		PreparedStatement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i + 1, parameters[i]);
+			}
+			
+			result = sqlStatement.executeQuery(query);
+			
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: 8001c7c3a35c00121e34961e0ace9d22
change_type: ModificationType.DELETE
diff: @@ -1,218 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.EventQueue;
-import java.awt.FlowLayout;
-import java.awt.GridLayout;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSeparator;
-import javax.swing.SpringLayout;
-import javax.swing.border.BevelBorder;
-import javax.swing.border.EtchedBorder;
-import org.jdesktop.layout.GroupLayout;
-import org.jdesktop.layout.LayoutStyle;
-import com.jgoodies.forms.factories.FormFactory;
-import com.jgoodies.forms.layout.CellConstraints;
-import com.jgoodies.forms.layout.ColumnSpec;
-import com.jgoodies.forms.layout.FormLayout;
-import com.jgoodies.forms.layout.RowSpec;
-
-public class mainWindow extends JFrame {
-
-	private final JMenuBar mainWindowMenu = new JMenuBar();
-	private final JMenu File = new JMenu();
-	private final JMenuItem FileConnectToDb = new JMenuItem();
-	private final JMenu Operations = new JMenu();
-	private final JMenu Help = new JMenu();
-	private final JMenuItem HelpAbout = new JMenuItem();
-	private final JMenuItem FileExit = new JMenuItem();
-	private static mainWindow mainWindowPointer;
-	
-	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
-	private final JPanel mainWindowStatusPanel = new JPanel();
-	private final JPanel panel = new JPanel();
-	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
-	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					mainWindow frame = new mainWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public mainWindow() {
-		super();
-		setBounds(100, 100, 682, 438);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		mainWindowPointer = this;
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//		
-	}
-	private void jbInit() throws Exception {
-		addWindowListener(new ThisWindowListener());
-		getContentPane().setLayout(new BorderLayout());
-		setTitle("eShop 1.00 (C) 2013   &  ");
-		setName("mainWindow");
-		
-		setJMenuBar(mainWindowMenu);
-		
-		mainWindowMenu.add(File);
-		File.setText("");
-		
-		File.add(FileConnectToDb);
-		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
-		FileConnectToDb.setText("   ");
-		
-		File.add(FileDisconnectFromDb);
-		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
-		FileDisconnectFromDb.setText("   ");
-		FileDisconnectFromDb.setEnabled(false);
-
-		File.addSeparator();
-		
-		File.add(FileExit);
-		FileExit.addActionListener(new FileExitActionListener());
-		FileExit.setText("");
-		
-		mainWindowMenu.add(Operations);
-		Operations.setText("");
-		Operations.setEnabled(false);
-		
-		mainWindowMenu.add(Help);
-		Help.setText("");
-		
-		Help.add(HelpAbout);
-		HelpAbout.setText("");
-		
-		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
-		mainWindowStatusPanel.setLayout(new FormLayout(
-			new ColumnSpec[] {
-				ColumnSpec.decode("149dlu"),
-				ColumnSpec.decode("72px"),
-				FormFactory.DEFAULT_COLSPEC},
-			new RowSpec[] {
-				FormFactory.RELATED_GAP_ROWSPEC,
-				RowSpec.decode("16px")}));
-		mainWindowStatusPanel.setSize(666, 25);
-		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
-		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
-		
-		mainWindowStatusPanelLoggedUserLabel.setText(":");
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
-		
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(2, 1, 1, 2));
-		mainWindowStatusPanelLoggedUserSettings.setText("");
-	}
-	
-	private class ThisWindowListener extends WindowAdapter {
-		public void windowClosing(WindowEvent e) {
-			this_windowClosing(e);
-		}
-	}
-	private class FileExitActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileExit_actionPerformed(e);
-		}
-	}
-	private class FileConnectToDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileConnectToDb_actionPerformed(e);
-		}
-	}
-	private class FileDisconnectFromDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileDisconnectFromDb_actionPerformed(e);
-		}
-	}
-
-	protected void this_windowClosing(WindowEvent e) {
-		
-		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			if (databaseConnectWindow.dbPortal.isConnected()) {
-				
-				databaseConnectWindow.dbPortal.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
-			}
-		}
-		this.dispose();
-		//System.exit(0);
-	}
-	
-	protected void fileExit_actionPerformed(ActionEvent e) {
-
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
-	}
-	
-	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
-		
-		//databaseConnectWindow.main(null);
-		databaseConnectWindow dcw = new databaseConnectWindow();
-		dcw.setVisible(true);
-		dcw.addWindowListener(databaseConnectWindowClosing);
-	}
-	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
-		
-        public void windowClosing(WindowEvent e) {
-            
-        	e.getWindow().dispose(); 
-        	
-        	if (databaseConnectWindow.dbPortal != null) {
-    			
-    			if (databaseConnectWindow.dbPortal.isConnected()) {
-    				
-    				mainWindowPointer.Operations.setEnabled(true);
-    				mainWindowPointer.FileConnectToDb.setEnabled(false);
-    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
-    			}
-    			else {
-    				mainWindowPointer.Operations.setEnabled(false);
-    			}
-    		}            
-        }
-    };
-	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			databaseConnectWindow.dbPortal.finallize();
-			this.Operations.setEnabled(false);
-			this.FileDisconnectFromDb.setEnabled(false);
-			this.FileConnectToDb.setEnabled(true);
-		}
-	}
-	
-}

programming_language: unknown
filename: 9020359db35d001211398853d386ea7d
change_type: ModificationType.ADD
diff: @@ -0,0 +1,332 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.JButton;
+import javax.swing.WindowConstants;
+import javax.swing.border.TitledBorder;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserLoginWindow extends JFrame {
+	private static final long serialVersionUID = 3003L;
+
+	private final JPanel groupLoginPanel = new JPanel();
+	private final JPanel groupCreateNewUserPanel = new JPanel();
+	private final JLabel loginUsernameLabel = new JLabel();
+	private final JLabel loginPasswordLabel = new JLabel();
+	private final JButton loginButton = new JButton();
+	private final JTextField loginUsernameTextField = new JTextField();
+	private final JPasswordField loginPasswordPasswordField = new JPasswordField();
+	private final JLabel newUsernameLabel = new JLabel();
+	private final JLabel newPasswordLabel = new JLabel();
+	private final JLabel newUserFirstNameLabel = new JLabel();
+	private final JLabel newUserLastNameLabel = new JLabel();
+	private final JButton createNewOperatorButton = new JButton();
+	private final JTextField newUsernameTextField = new JTextField();
+	private final JTextField newFirstNameTextField = new JTextField();
+	private final JPasswordField newPasswordPasswordField = new JPasswordField();
+	private final JTextField newLastNameTextField = new JTextField();
+	
+	public static int loggedUserId = -1;
+	public static String loggedUserNames = "";
+	
+	private final JLabel newPasswordAgainLabel = new JLabel();
+	private final JPasswordField newPasswordPasswordAgainField = new JPasswordField();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserLoginWindow frame = new operatorUserLoginWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserLoginWindow() {
+		super();
+		setBounds(100, 100, 518, 242);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setTitle("  ");
+		setName("operatorLoginWindow");
+		setResizable(false);
+		setAlwaysOnTop(true);
+		
+		getContentPane().add(groupLoginPanel);
+		groupLoginPanel.setLayout(null);
+		groupLoginPanel.setBorder(new TitledBorder(null, ":", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupLoginPanel.setBounds(10, 10, 243, 133);
+		
+		groupLoginPanel.add(loginUsernameLabel);
+		loginUsernameLabel.setText(":");
+		loginUsernameLabel.setBounds(10, 31, 80, 16);
+		
+		groupLoginPanel.add(loginPasswordLabel);
+		loginPasswordLabel.setText(":");
+		loginPasswordLabel.setBounds(10, 53, 80, 16);
+		
+		groupLoginPanel.add(loginButton);
+		loginButton.addActionListener(new LoginButtonActionListener());
+		loginButton.setText("");
+		loginButton.setBounds(127, 93, 106, 26);
+		
+		groupLoginPanel.add(loginUsernameTextField);
+		loginUsernameTextField.setBounds(96, 29, 137, 20);
+		
+		groupLoginPanel.add(loginPasswordPasswordField);
+		loginPasswordPasswordField.setBounds(96, 51, 137, 20);
+		
+		getContentPane().add(groupCreateNewUserPanel);
+		groupCreateNewUserPanel.setLayout(null);
+		groupCreateNewUserPanel.setBorder(new TitledBorder(null, " :", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupCreateNewUserPanel.setBounds(259, 10, 243, 194);
+		
+		groupCreateNewUserPanel.add(newUsernameLabel);
+		newUsernameLabel.setText(" :");
+		newUsernameLabel.setBounds(10, 32, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordLabel);
+		newPasswordLabel.setText(":");
+		newPasswordLabel.setBounds(10, 54, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserFirstNameLabel);
+		newUserFirstNameLabel.setText(":");
+		newUserFirstNameLabel.setBounds(10, 98, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserLastNameLabel);
+		newUserLastNameLabel.setText(":");
+		newUserLastNameLabel.setBounds(10, 120, 95, 16);
+		
+		groupCreateNewUserPanel.add(createNewOperatorButton);
+		createNewOperatorButton.addActionListener(new CreateNewOperatorButtonActionListener());
+		createNewOperatorButton.setText("");
+		createNewOperatorButton.setBounds(127, 158, 106, 26);
+		
+		groupCreateNewUserPanel.add(newUsernameTextField);
+		newUsernameTextField.setBounds(111, 30, 122, 20);
+		
+		groupCreateNewUserPanel.add(newFirstNameTextField);
+		newFirstNameTextField.setBounds(111, 96, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordField);
+		newPasswordPasswordField.setBounds(111, 52, 122, 20);
+		
+		groupCreateNewUserPanel.add(newLastNameTextField);
+		newLastNameTextField.setBounds(111, 118, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordAgainLabel);
+		newPasswordAgainLabel.setText(" :");
+		newPasswordAgainLabel.setBounds(10, 76, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordAgainField);
+		newPasswordPasswordAgainField.setBounds(111, 75, 122, 20);
+	}
+	private class LoginButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			loginButton_actionPerformed(e);
+		}
+	}
+	private class CreateNewOperatorButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			createNewOperatorButton_actionPerformed(e);
+		}
+	}
+	
+	protected void loginButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				String password = "";
+				
+				char[] pass = loginPasswordPasswordField.getPassword();
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				//FIXME prone to sql injection
+				
+				ResultSet rs = null;
+				
+				try {				
+					
+					/*rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_id, operator_first_name, operator_last_name FROM operators WHERE" + 
+						" operator_username='" + loginUsernameTextField.getText() + "' AND operator_password='" +
+						Md5hashcalc.calculateMD5hash(password) + "'");*/
+					
+					rs = databaseConnectWindow.dbPortal.executeParameterizedQuery("SELECT operator_id, operator_first_name, " + "" +
+							"operator_last_name FROM operators WHERE operator_username = ? AND operator_password = ?", 
+							loginUsernameTextField.getText(), Md5hashcalc.calculateMD5hash(password));
+							
+				}
+				catch (Exception ex) {
+					System.exit(-1);
+				}
+				
+				if (rs != null) {
+					
+					try {
+						
+						loggedUserId = rs.getInt(1);
+						loggedUserNames = rs.getString(2) + " " + rs.getString(3);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", "  ", 
+								JOptionPane.ERROR_MESSAGE);
+						return;
+					}
+					
+					this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+				}
+				else {
+					JOptionPane.showMessageDialog(this, "   !", "  ", 
+							JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}		
+	}
+	
+	protected void createNewOperatorButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				char[] pass = newPasswordPasswordField.getPassword();
+				String password = "";
+				String encryptedPassword = "";
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				char[] pass2 = newPasswordPasswordAgainField.getPassword();
+				
+				if (pass.length == pass2.length) {
+				
+						for (int i = 0; i < pass.length; i++) {
+							
+							if (pass[i] != pass2[i]) {
+								
+								JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+								return;
+							}
+						}
+				}
+				else {
+				
+					JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+					return;
+				}
+								
+				if ((newUsernameTextField.getText().length() > 3) && (password.length() > 3) && 
+						(newFirstNameTextField.getText().length() > 3) && (newLastNameTextField.getText().length() > 3)) {
+					
+					try {
+						
+						encryptedPassword = Md5hashcalc.calculateMD5hash(password);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", " ", JOptionPane.ERROR_MESSAGE);
+						System.exit(-1);
+					}
+					
+					//FIXME prone to sql injection
+					ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT COUNT(*) FROM operators WHERE operator_username='" +
+							newUsernameTextField.getText() + "'");
+					
+					int usersCount = 0;
+					try {
+						
+						usersCount = rs.getInt(1);
+					}
+					catch (Exception ex) {						
+					}					
+					
+					if ((databaseConnectWindow.dbPortal.getLastError() == null) && (usersCount == 0)) {						
+						
+						//no such existing username so now we create it
+						//FIXME prone to sql injection
+						if (databaseConnectWindow.dbPortal.executeNonQuery("INSERT INTO operators(operator_username, operator_password, " +
+								"operator_first_name, operator_last_name) VALUES('" + newUsernameTextField.getText() + "', '" +
+								encryptedPassword + "', '" + newFirstNameTextField.getText() + "', '" + newLastNameTextField.getText() + "')") != 1) {
+							
+							JOptionPane.showMessageDialog(this, "     !", "", JOptionPane.ERROR_MESSAGE);
+						}
+						else { //everything ok so login now
+							
+							loginUsernameTextField.setText(newUsernameTextField.getText());
+							loginPasswordPasswordField.setText(password);
+							loginButton_actionPerformed(null);
+						}						
+					}
+					else {
+						
+						if (databaseConnectWindow.dbPortal.getLastError() != null) {
+							
+							JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);							
+						}
+						else {
+							
+							JOptionPane.showMessageDialog(this, "      .", "   ", JOptionPane.ERROR_MESSAGE);							
+						}
+					}					
+				}
+				else {
+					
+					JOptionPane.showMessageDialog(this, "    - !", " ", JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+		}		
+	}
+
+}

programming_language: Java
filename: e0b4ec30a35c00121e34961e0ace9d22
change_type: ModificationType.DELETE
diff: @@ -1,194 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.EventQueue;
-import java.awt.FlowLayout;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import javax.swing.BoxLayout;
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-
-import javax.swing.JFrame;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSeparator;
-import javax.swing.border.BevelBorder;
-import javax.swing.border.EtchedBorder;
-import com.jgoodies.forms.factories.FormFactory;
-import com.jgoodies.forms.layout.ColumnSpec;
-import com.jgoodies.forms.layout.FormLayout;
-import com.jgoodies.forms.layout.RowSpec;
-
-public class mainWindow extends JFrame {
-
-	private final JMenuBar mainWindowMenu = new JMenuBar();
-	private final JMenu File = new JMenu();
-	private final JMenuItem FileConnectToDb = new JMenuItem();
-	private final JMenu Operations = new JMenu();
-	private final JMenu Help = new JMenu();
-	private final JMenuItem HelpAbout = new JMenuItem();
-	private final JMenuItem FileExit = new JMenuItem();
-	private static mainWindow mainWindowPointer;
-	
-	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
-	private final JPanel mainWindowStatusPanel = new JPanel();
-	private final JPanel panel = new JPanel();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					mainWindow frame = new mainWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public mainWindow() {
-		super();
-		setBounds(100, 100, 682, 438);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		mainWindowPointer = this;
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//		
-	}
-	private void jbInit() throws Exception {
-		addWindowListener(new ThisWindowListener());
-		getContentPane().setLayout(new BorderLayout());
-		setTitle("eShop 1.00 (C) 2013   &  ");
-		setName("mainWindow");
-		
-		setJMenuBar(mainWindowMenu);
-		
-		mainWindowMenu.add(File);
-		File.setText("");
-		
-		File.add(FileConnectToDb);
-		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
-		FileConnectToDb.setText("   ");
-		
-		File.add(FileDisconnectFromDb);
-		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
-		FileDisconnectFromDb.setText("   ");
-		FileDisconnectFromDb.setEnabled(false);
-
-		File.addSeparator();
-		
-		File.add(FileExit);
-		FileExit.addActionListener(new FileExitActionListener());
-		FileExit.setText("");
-		
-		mainWindowMenu.add(Operations);
-		Operations.setText("");
-		Operations.setEnabled(false);
-		
-		mainWindowMenu.add(Help);
-		Help.setText("");
-		
-		Help.add(HelpAbout);
-		HelpAbout.setText("");
-		
-		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
-		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
-		mainWindowStatusPanel.setMinimumSize(new Dimension(0, 20));
-		mainWindowStatusPanel.setBounds(0, 357, 666, 40);		
-	}
-	
-	private class ThisWindowListener extends WindowAdapter {
-		public void windowClosing(WindowEvent e) {
-			this_windowClosing(e);
-		}
-	}
-	private class FileExitActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileExit_actionPerformed(e);
-		}
-	}
-	private class FileConnectToDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileConnectToDb_actionPerformed(e);
-		}
-	}
-	private class FileDisconnectFromDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileDisconnectFromDb_actionPerformed(e);
-		}
-	}
-
-	protected void this_windowClosing(WindowEvent e) {
-		
-		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			if (databaseConnectWindow.dbPortal.isConnected()) {
-				
-				databaseConnectWindow.dbPortal.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
-			}
-		}
-		this.dispose();
-		//System.exit(0);
-	}
-	
-	protected void fileExit_actionPerformed(ActionEvent e) {
-
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
-	}
-	
-	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
-		
-		//databaseConnectWindow.main(null);
-		databaseConnectWindow dcw = new databaseConnectWindow();
-		dcw.setVisible(true);
-		dcw.addWindowListener(databaseConnectWindowClosing);
-	}
-	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
-		
-        public void windowClosing(WindowEvent e) {
-            
-        	e.getWindow().dispose(); 
-        	
-        	if (databaseConnectWindow.dbPortal != null) {
-    			
-    			if (databaseConnectWindow.dbPortal.isConnected()) {
-    				
-    				mainWindowPointer.Operations.setEnabled(true);
-    				mainWindowPointer.FileConnectToDb.setEnabled(false);
-    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
-    			}
-    			else {
-    				mainWindowPointer.Operations.setEnabled(false);
-    			}
-    		}            
-        }
-    };
-	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			databaseConnectWindow.dbPortal.finallize();
-			this.Operations.setEnabled(false);
-			this.FileDisconnectFromDb.setEnabled(false);
-			this.FileConnectToDb.setEnabled(true);
-		}
-	}
-	
-}

programming_language: unknown
filename: a02137b1aa5d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,334 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.JButton;
+import javax.swing.WindowConstants;
+import javax.swing.border.TitledBorder;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserLoginWindow extends JFrame {
+	private static final long serialVersionUID = 3003L;
+
+	private final JPanel groupLoginPanel = new JPanel();
+	private final JPanel groupCreateNewUserPanel = new JPanel();
+	private final JLabel loginUsernameLabel = new JLabel();
+	private final JLabel loginPasswordLabel = new JLabel();
+	private final JButton loginButton = new JButton();
+	private final JTextField loginUsernameTextField = new JTextField();
+	private final JPasswordField loginPasswordPasswordField = new JPasswordField();
+	private final JLabel newUsernameLabel = new JLabel();
+	private final JLabel newPasswordLabel = new JLabel();
+	private final JLabel newUserFirstNameLabel = new JLabel();
+	private final JLabel newUserLastNameLabel = new JLabel();
+	private final JButton createNewOperatorButton = new JButton();
+	private final JTextField newUsernameTextField = new JTextField();
+	private final JTextField newFirstNameTextField = new JTextField();
+	private final JPasswordField newPasswordPasswordField = new JPasswordField();
+	private final JTextField newLastNameTextField = new JTextField();
+	
+	public static int loggedUserId = -1;
+	public static String loggedUserNames = "";
+	
+	private final JLabel newPasswordAgainLabel = new JLabel();
+	private final JPasswordField newPasswordPasswordAgainField = new JPasswordField();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserLoginWindow frame = new operatorUserLoginWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserLoginWindow() {
+		super();
+		setBounds(100, 100, 518, 242);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setTitle("  ");
+		setName("operatorLoginWindow");
+		setResizable(false);
+		setAlwaysOnTop(true);
+		
+		getContentPane().add(groupLoginPanel);
+		groupLoginPanel.setLayout(null);
+		groupLoginPanel.setBorder(new TitledBorder(null, ":", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupLoginPanel.setBounds(10, 10, 243, 133);
+		
+		groupLoginPanel.add(loginUsernameLabel);
+		loginUsernameLabel.setText(":");
+		loginUsernameLabel.setBounds(10, 31, 80, 16);
+		
+		groupLoginPanel.add(loginPasswordLabel);
+		loginPasswordLabel.setText(":");
+		loginPasswordLabel.setBounds(10, 53, 80, 16);
+		
+		groupLoginPanel.add(loginButton);
+		loginButton.addActionListener(new LoginButtonActionListener());
+		loginButton.setText("");
+		loginButton.setBounds(127, 93, 106, 26);
+		
+		groupLoginPanel.add(loginUsernameTextField);
+		loginUsernameTextField.setBounds(96, 29, 137, 20);
+		
+		groupLoginPanel.add(loginPasswordPasswordField);
+		loginPasswordPasswordField.setBounds(96, 51, 137, 20);
+		
+		getContentPane().add(groupCreateNewUserPanel);
+		groupCreateNewUserPanel.setLayout(null);
+		groupCreateNewUserPanel.setBorder(new TitledBorder(null, " :", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupCreateNewUserPanel.setBounds(259, 10, 243, 194);
+		
+		groupCreateNewUserPanel.add(newUsernameLabel);
+		newUsernameLabel.setText(" :");
+		newUsernameLabel.setBounds(10, 32, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordLabel);
+		newPasswordLabel.setText(":");
+		newPasswordLabel.setBounds(10, 54, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserFirstNameLabel);
+		newUserFirstNameLabel.setText(":");
+		newUserFirstNameLabel.setBounds(10, 98, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserLastNameLabel);
+		newUserLastNameLabel.setText(":");
+		newUserLastNameLabel.setBounds(10, 120, 95, 16);
+		
+		groupCreateNewUserPanel.add(createNewOperatorButton);
+		createNewOperatorButton.addActionListener(new CreateNewOperatorButtonActionListener());
+		createNewOperatorButton.setText("");
+		createNewOperatorButton.setBounds(127, 158, 106, 26);
+		
+		groupCreateNewUserPanel.add(newUsernameTextField);
+		newUsernameTextField.setBounds(111, 30, 122, 20);
+		
+		groupCreateNewUserPanel.add(newFirstNameTextField);
+		newFirstNameTextField.setBounds(111, 96, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordField);
+		newPasswordPasswordField.setBounds(111, 52, 122, 20);
+		
+		groupCreateNewUserPanel.add(newLastNameTextField);
+		newLastNameTextField.setBounds(111, 118, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordAgainLabel);
+		newPasswordAgainLabel.setText(" :");
+		newPasswordAgainLabel.setBounds(10, 76, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordAgainField);
+		newPasswordPasswordAgainField.setBounds(111, 75, 122, 20);
+	}
+	private class LoginButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			loginButton_actionPerformed(e);
+		}
+	}
+	private class CreateNewOperatorButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			createNewOperatorButton_actionPerformed(e);
+		}
+	}
+	
+	protected void loginButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				String password = "";
+				
+				char[] pass = loginPasswordPasswordField.getPassword();
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				//FIXME prone to sql injection
+				
+				ResultSet rs = null;
+				
+				try {				
+					
+					/*rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_id, operator_first_name, operator_last_name FROM operators WHERE" + 
+						" operator_username='" + loginUsernameTextField.getText() + "' AND operator_password='" +
+						Md5hashcalc.calculateMD5hash(password) + "'");*/
+					Object[] params = new String[2];
+					params[0] = loginUsernameTextField.getText();
+					params[1] = Md5hashcalc.calculateMD5hash(password);
+					
+					rs = databaseConnectWindow.dbPortal.executeParameterizedQuery("SELECT operator_id, operator_first_name, " + "" +
+							"operator_last_name FROM operators WHERE operator_username=? AND operator_password=?", params);
+							
+				}
+				catch (Exception ex) {
+					System.exit(-1);
+				}
+				
+				if (rs != null) {
+					
+					try {
+						
+						loggedUserId = rs.getInt(1);
+						loggedUserNames = rs.getString(2) + " " + rs.getString(3);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", "  ", 
+								JOptionPane.ERROR_MESSAGE);
+						return;
+					}
+					
+					this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+				}
+				else {
+					JOptionPane.showMessageDialog(this, "   !", "  ", 
+							JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}		
+	}
+	
+	protected void createNewOperatorButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				char[] pass = newPasswordPasswordField.getPassword();
+				String password = "";
+				String encryptedPassword = "";
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				char[] pass2 = newPasswordPasswordAgainField.getPassword();
+				
+				if (pass.length == pass2.length) {
+				
+						for (int i = 0; i < pass.length; i++) {
+							
+							if (pass[i] != pass2[i]) {
+								
+								JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+								return;
+							}
+						}
+				}
+				else {
+				
+					JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+					return;
+				}
+								
+				if ((newUsernameTextField.getText().length() > 3) && (password.length() > 3) && 
+						(newFirstNameTextField.getText().length() > 3) && (newLastNameTextField.getText().length() > 3)) {
+					
+					try {
+						
+						encryptedPassword = Md5hashcalc.calculateMD5hash(password);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", " ", JOptionPane.ERROR_MESSAGE);
+						System.exit(-1);
+					}
+					
+					//FIXME prone to sql injection
+					ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT COUNT(*) FROM operators WHERE operator_username='" +
+							newUsernameTextField.getText() + "'");
+					
+					int usersCount = 0;
+					try {
+						
+						usersCount = rs.getInt(1);
+					}
+					catch (Exception ex) {						
+					}					
+					
+					if ((databaseConnectWindow.dbPortal.getLastError() == null) && (usersCount == 0)) {						
+						
+						//no such existing username so now we create it
+						//FIXME prone to sql injection
+						if (databaseConnectWindow.dbPortal.executeNonQuery("INSERT INTO operators(operator_username, operator_password, " +
+								"operator_first_name, operator_last_name) VALUES('" + newUsernameTextField.getText() + "', '" +
+								encryptedPassword + "', '" + newFirstNameTextField.getText() + "', '" + newLastNameTextField.getText() + "')") != 1) {
+							
+							JOptionPane.showMessageDialog(this, "     !", "", JOptionPane.ERROR_MESSAGE);
+						}
+						else { //everything ok so login now
+							
+							loginUsernameTextField.setText(newUsernameTextField.getText());
+							loginPasswordPasswordField.setText(password);
+							loginButton_actionPerformed(null);
+						}						
+					}
+					else {
+						
+						if (databaseConnectWindow.dbPortal.getLastError() != null) {
+							
+							JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);							
+						}
+						else {
+							
+							JOptionPane.showMessageDialog(this, "      .", "   ", JOptionPane.ERROR_MESSAGE);							
+						}
+					}					
+				}
+				else {
+					
+					JOptionPane.showMessageDialog(this, "    - !", " ", JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+		}		
+	}
+
+}

programming_language: Java
filename: 3006c73e005d00121f22d5fb8a5d79d9
change_type: ModificationType.DELETE
diff: @@ -1,133 +0,0 @@
-import java.awt.EventQueue;
-import javax.swing.JButton;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPasswordField;
-import javax.swing.JTextField;
-
-import java.sql.ResultSet;
-import database_management.MySQLdbManager;
-import md5_calculator.Md5hashcalc;
-
-public class operatorUserSettingsWindow extends JFrame {
-
-	private final JLabel usernameLabel = new JLabel();
-	private final JLabel passwordLabel = new JLabel();
-	private final JLabel passwordAgainLabel = new JLabel();
-	private final JLabel nameLabel = new JLabel();
-	private final JLabel lastNameLabel = new JLabel();
-	private final JButton updateButton = new JButton();
-	private final JTextField firstNameTextField = new JTextField();
-	private final JTextField lastNameTextField = new JTextField();
-	private final JPasswordField passwordPasswordField = new JPasswordField();
-	private final JPasswordField passwordAgainPasswordField = new JPasswordField();
-	
-	private String currentOperatorPassword;
-	
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public operatorUserSettingsWindow() {
-		super();
-		setBounds(100, 100, 314, 214);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//
-	}
-	private void jbInit() throws Exception {
-		getContentPane().setLayout(null);
-		setTitle("  ");
-		setName("operatorUserSettings");
-		
-		getContentPane().add(usernameLabel);
-		usernameLabel.setText(":");
-		usernameLabel.setBounds(10, 0, 97, 16);
-		
-		getContentPane().add(passwordLabel);
-		passwordLabel.setText(":");
-		passwordLabel.setBounds(10, 76, 97, 16);
-		
-		getContentPane().add(passwordAgainLabel);
-		passwordAgainLabel.setText(" :");
-		passwordAgainLabel.setBounds(10, 95, 97, 16);
-		
-		getContentPane().add(nameLabel);
-		nameLabel.setText(":");
-		nameLabel.setBounds(10, 32, 97, 16);
-		
-		getContentPane().add(lastNameLabel);
-		lastNameLabel.setText(":");
-		lastNameLabel.setBounds(10, 54, 97, 16);
-		
-		getContentPane().add(updateButton);
-		updateButton.setText("");
-		updateButton.setBounds(93, 140, 106, 26);
-		
-		getContentPane().add(firstNameTextField);
-		firstNameTextField.setBounds(113, 30, 175, 20);
-		
-		getContentPane().add(lastNameTextField);
-		lastNameTextField.setBounds(113, 52, 175, 20);
-		
-		getContentPane().add(passwordPasswordField);
-		passwordPasswordField.setBounds(113, 74, 175, 20);
-		
-		getContentPane().add(passwordAgainPasswordField);
-		passwordAgainPasswordField.setBounds(113, 97, 175, 20);
-		
-		getCurrentUserData();
-	}
-	
-	private void getCurrentUserData() {
-		
-		if (databaseConnectWindow.dbPortal == null) {
-			return;
-		}
-		if (databaseConnectWindow.dbPortal.isConnected() == false) {
-			return;
-		}
-		if (operatorUserLoginWindow.loggedUserId == -1) {
-			return;
-		}
-		
-		ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_username, operator_password, " + 
-				"operator_first_name, operator_last_name FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId);
-		
-		if ((rs == null) || (databaseConnectWindow.dbPortal.getLastError() != null)) {
-			return;
-		}
-		
-		try {
-			
-			rs.getString(1);
-			currentOperatorPassword = rs.getString(2);
-			rs.getString(3);
-			rs.getString(4);
-		}
-		catch (Exception ex) {			
-		}		
-	}
-
-}

programming_language: unknown
filename: 00c97468a45d00121890bdcc27f78f62
change_type: ModificationType.RENAME
diff: @@ -2,8 +2,8 @@ import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.EventQueue;
-import java.awt.FlowLayout;
 import java.awt.GridLayout;
+import java.awt.Insets;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.awt.event.WindowListener;
@@ -32,6 +32,7 @@ import com.jgoodies.forms.layout.ColumnSpec;
 import com.jgoodies.forms.layout.FormLayout;
 import com.jgoodies.forms.layout.RowSpec;
 
+
 public class mainWindow extends JFrame {
 
 	private final JMenuBar mainWindowMenu = new JMenuBar();
@@ -45,9 +46,17 @@ public class mainWindow extends JFrame {
 	
 	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
 	private final JPanel mainWindowStatusPanel = new JPanel();
-	private final JPanel panel = new JPanel();
 	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogin = new JButton();
 	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
+
+	private final JLabel mainWindowStatusPanelSeparatorLabel = new JLabel();
+	private final JLabel mainWindowStatusPanelSeparatorLabel2 = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogout = new JButton();
+	
+	private final JMenuItem operationsProductsManagement = new JMenuItem();
+	private final JMenuItem operationsOrdersManagement = new JMenuItem();
+	private final JMenuItem operationsNewOrder = new JMenuItem();
 	/**
 	 * Launch the application
 	 * @param args
@@ -110,10 +119,25 @@ public class mainWindow extends JFrame {
 		Operations.setText("");
 		Operations.setEnabled(false);
 		
+		Operations.add(operationsNewOrder);
+		operationsNewOrder.addActionListener(new OperationsNewOrderActionListener());
+		operationsNewOrder.setText(" ");
+
+		Operations.addSeparator();
+		
+		Operations.add(operationsProductsManagement);
+		operationsProductsManagement.addActionListener(new OperationsProductsManagementActionListener());
+		operationsProductsManagement.setText("  ");
+		
+		Operations.add(operationsOrdersManagement);
+		operationsOrdersManagement.addActionListener(new OperationsOrdersManagementActionListener());
+		operationsOrdersManagement.setText("  ");
+		
 		mainWindowMenu.add(Help);
 		Help.setText("");
 		
 		Help.add(HelpAbout);
+		HelpAbout.addActionListener(new HelpAboutActionListener());
 		HelpAbout.setText("");
 		
 		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
@@ -121,6 +145,10 @@ public class mainWindow extends JFrame {
 			new ColumnSpec[] {
 				ColumnSpec.decode("149dlu"),
 				ColumnSpec.decode("72px"),
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
 				FormFactory.DEFAULT_COLSPEC},
 			new RowSpec[] {
 				FormFactory.RELATED_GAP_ROWSPEC,
@@ -132,9 +160,24 @@ public class mainWindow extends JFrame {
 		mainWindowStatusPanelLoggedUserLabel.setText(":");
 		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
 		
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogin, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogin.addActionListener(new MainWindowStatusPanelLoggedUserLoginActionListener());
+		mainWindowStatusPanelLoggedUserLogin.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(4, 1, 1, 2, CellConstraints.CENTER, CellConstraints.DEFAULT));
 		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
-		mainWindowStatusPanelLoggedUserSettings.setText("");
+		mainWindowStatusPanelLoggedUserSettings.setMargin(new Insets(2, 14, 2, 14));
+		mainWindowStatusPanelLoggedUserSettings.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel, new CellConstraints(3, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel2, new CellConstraints(5, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel2.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogout, new CellConstraints(6, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogout.addActionListener(new MainWindowStatusPanelLoggedUserLogoutActionListener());
+		mainWindowStatusPanelLoggedUserLogout.setText("");
 		mainWindowStatusPanelSetEnabled(false);
 	}
 	
@@ -170,11 +213,41 @@ public class mainWindow extends JFrame {
 			fileDisconnectFromDb_actionPerformed(e);
 		}
 	}
+	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogin_actionPerformed(e);
+		}
+	}
 	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
 		public void actionPerformed(ActionEvent e) {
 			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
 		}
 	}
+	private class MainWindowStatusPanelLoggedUserLogoutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogout_actionPerformed(e);
+		}
+	}
+	private class HelpAboutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			helpAbout_actionPerformed(e);
+		}
+	}
+	private class OperationsProductsManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsProductsManagement_actionPerformed(e);
+		}
+	}
+	private class OperationsNewOrderActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsNewOrder_actionPerformed(e);
+		}
+	}
+	private class OperationsOrdersManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsOrdersManagement_actionPerformed(e);
+		}
+	}
 
 	protected void this_windowClosing(WindowEvent e) {
 		
@@ -184,8 +257,7 @@ public class mainWindow extends JFrame {
 			
 			if (databaseConnectWindow.dbPortal.isConnected()) {
 				
-				databaseConnectWindow.dbPortal.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
+				databaseConnectWindow.dbPortal.finalize();
 			}
 		}
 		this.dispose();
@@ -194,14 +266,13 @@ public class mainWindow extends JFrame {
 	
 	protected void fileExit_actionPerformed(ActionEvent e) {
 
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
 	}
 	
 	////////////////////////////////////////////////////////////////////////
 	
 	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
 		
-		//databaseConnectWindow.main(null);
 		databaseConnectWindow dcw = new databaseConnectWindow();
 		dcw.setVisible(true);
 		dcw.addWindowListener(databaseConnectWindowClosing);
@@ -234,18 +305,20 @@ public class mainWindow extends JFrame {
 		
 		if (databaseConnectWindow.dbPortal != null) {
 			
-			databaseConnectWindow.dbPortal.finallize();
+			databaseConnectWindow.dbPortal.finalize();
 			
 			this.FileConnectToDb.setEnabled(true);
 			this.FileDisconnectFromDb.setEnabled(false);			
 			this.Operations.setEnabled(false);
-			this.mainWindowStatusPanelSetEnabled(false);			
+			this.mainWindowStatusPanelSetEnabled(false);	
+			this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			operatorUserLoginWindow.loggedUserId = -1;
 		}
 	}
 	
 	////////////////////////////////////////////////////////////////////////
 	
-	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
 		
 		operatorUserLoginWindow oul = new operatorUserLoginWindow();
 		oul.setVisible(true);
@@ -257,14 +330,69 @@ public class mainWindow extends JFrame {
 			if (operatorUserLoginWindow.loggedUserId != -1) {
 				
 				mainWindowPointer.Operations.setEnabled(true);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserLoginWindow.loggedUserNames);
 			}
 			else {
 				
 				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
 			}
 		}
+	};
+		
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+		
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		operatorUserSettingsWindow ousw = new operatorUserSettingsWindow();
+		ousw.setVisible(true);
+		ousw.addWindowListener(operatorUserSettingsWindowClosing);
 	}
 	
+	private static WindowListener operatorUserSettingsWindowClosing = new WindowAdapter() {
+		
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserSettingsWindow.operatorFirstNameLastNameCombination);
+			}
+			else { //if operator was deleted
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+	
 	////////////////////////////////////////////////////////////////////////
 	
+	protected void mainWindowStatusPanelLoggedUserLogout_actionPerformed(ActionEvent e) {
+		
+		this.Operations.setEnabled(false);
+		this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+		operatorUserLoginWindow.loggedUserId = -1;
+	}
+	
+	protected void helpAbout_actionPerformed(ActionEvent e) {
+		
+		JOptionPane.showMessageDialog(this, "eShop ver.-1.00\n(C) 2013   &  ", "", JOptionPane.INFORMATION_MESSAGE);
+	}
+	
+	protected void operationsProductsManagement_actionPerformed(ActionEvent e) {
+		//TODO...		
+	}
+	protected void operationsNewOrder_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	protected void operationsOrdersManagement_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	
+	
+	
+	
 }

programming_language: Java
filename: 50c4b340ab5d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,572 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return int the number of affected things
+	 */
+	
+	public int executeParameterizedNonQuery(String query, Object[] parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		//TODO...
+		// boolean - ok
+		// String  - ok
+		// char    - 
+		// byte    -
+		// short   -
+		// int     -
+		// long    -
+		// double  -
+		// float   -
+		// Date    -
+		// null ???
+		
+		try {
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i, parameters[i]);
+				
+				/*if (parameters[i] instanceof Boolean) {
+					
+					sqlStatement.setBoolean(i, ((Boolean)parameters[i]).booleanValue());
+					continue;
+				}
+				if (parameters[i] instanceof String) {
+					
+					sqlStatement.setString(i, ((String)parameters[i].toString()));
+					continue;
+				}
+				if (parameters[i] instanceof Character) {
+					
+					sqlStatement.set
+				}*/
+			}
+			
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Executes parameterized query and returns ResultSet with data. For SELECT...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeParameterizedQuery(String query, Object[] parameters) { //executes query and returns ResultSet 
+		
+		PreparedStatement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i, parameters[i]);
+			}
+			
+			result = sqlStatement.executeQuery(query);
+			
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: a085d459b55d001211398853d386ea7d
change_type: ModificationType.ADD
diff: @@ -0,0 +1,324 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.JButton;
+import javax.swing.WindowConstants;
+import javax.swing.border.TitledBorder;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserLoginWindow extends JFrame {
+	private static final long serialVersionUID = 3003L;
+
+	private final JPanel groupLoginPanel = new JPanel();
+	private final JPanel groupCreateNewUserPanel = new JPanel();
+	private final JLabel loginUsernameLabel = new JLabel();
+	private final JLabel loginPasswordLabel = new JLabel();
+	private final JButton loginButton = new JButton();
+	private final JTextField loginUsernameTextField = new JTextField();
+	private final JPasswordField loginPasswordPasswordField = new JPasswordField();
+	private final JLabel newUsernameLabel = new JLabel();
+	private final JLabel newPasswordLabel = new JLabel();
+	private final JLabel newUserFirstNameLabel = new JLabel();
+	private final JLabel newUserLastNameLabel = new JLabel();
+	private final JButton createNewOperatorButton = new JButton();
+	private final JTextField newUsernameTextField = new JTextField();
+	private final JTextField newFirstNameTextField = new JTextField();
+	private final JPasswordField newPasswordPasswordField = new JPasswordField();
+	private final JTextField newLastNameTextField = new JTextField();
+	
+	public static int loggedUserId = -1;
+	public static String loggedUserNames = "";
+	
+	private final JLabel newPasswordAgainLabel = new JLabel();
+	private final JPasswordField newPasswordPasswordAgainField = new JPasswordField();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserLoginWindow frame = new operatorUserLoginWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserLoginWindow() {
+		super();
+		setBounds(100, 100, 518, 242);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setTitle("  ");
+		setName("operatorLoginWindow");
+		setResizable(false);
+		setAlwaysOnTop(true);
+		
+		getContentPane().add(groupLoginPanel);
+		groupLoginPanel.setLayout(null);
+		groupLoginPanel.setBorder(new TitledBorder(null, ":", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupLoginPanel.setBounds(10, 10, 243, 133);
+		
+		groupLoginPanel.add(loginUsernameLabel);
+		loginUsernameLabel.setText(":");
+		loginUsernameLabel.setBounds(10, 31, 80, 16);
+		
+		groupLoginPanel.add(loginPasswordLabel);
+		loginPasswordLabel.setText(":");
+		loginPasswordLabel.setBounds(10, 53, 80, 16);
+		
+		groupLoginPanel.add(loginButton);
+		loginButton.addActionListener(new LoginButtonActionListener());
+		loginButton.setText("");
+		loginButton.setBounds(127, 93, 106, 26);
+		
+		groupLoginPanel.add(loginUsernameTextField);
+		loginUsernameTextField.setBounds(96, 29, 137, 20);
+		
+		groupLoginPanel.add(loginPasswordPasswordField);
+		loginPasswordPasswordField.setBounds(96, 51, 137, 20);
+		
+		getContentPane().add(groupCreateNewUserPanel);
+		groupCreateNewUserPanel.setLayout(null);
+		groupCreateNewUserPanel.setBorder(new TitledBorder(null, " :", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupCreateNewUserPanel.setBounds(259, 10, 243, 194);
+		
+		groupCreateNewUserPanel.add(newUsernameLabel);
+		newUsernameLabel.setText(" :");
+		newUsernameLabel.setBounds(10, 32, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordLabel);
+		newPasswordLabel.setText(":");
+		newPasswordLabel.setBounds(10, 54, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserFirstNameLabel);
+		newUserFirstNameLabel.setText(":");
+		newUserFirstNameLabel.setBounds(10, 98, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserLastNameLabel);
+		newUserLastNameLabel.setText(":");
+		newUserLastNameLabel.setBounds(10, 120, 95, 16);
+		
+		groupCreateNewUserPanel.add(createNewOperatorButton);
+		createNewOperatorButton.addActionListener(new CreateNewOperatorButtonActionListener());
+		createNewOperatorButton.setText("");
+		createNewOperatorButton.setBounds(127, 158, 106, 26);
+		
+		groupCreateNewUserPanel.add(newUsernameTextField);
+		newUsernameTextField.setBounds(111, 30, 122, 20);
+		
+		groupCreateNewUserPanel.add(newFirstNameTextField);
+		newFirstNameTextField.setBounds(111, 96, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordField);
+		newPasswordPasswordField.setBounds(111, 52, 122, 20);
+		
+		groupCreateNewUserPanel.add(newLastNameTextField);
+		newLastNameTextField.setBounds(111, 118, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordAgainLabel);
+		newPasswordAgainLabel.setText(" :");
+		newPasswordAgainLabel.setBounds(10, 76, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordAgainField);
+		newPasswordPasswordAgainField.setBounds(111, 75, 122, 20);
+	}
+	private class LoginButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			loginButton_actionPerformed(e);
+		}
+	}
+	private class CreateNewOperatorButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			createNewOperatorButton_actionPerformed(e);
+		}
+	}
+	
+	protected void loginButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				String password = "";
+				
+				char[] pass = loginPasswordPasswordField.getPassword();
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				ResultSet rs = null;
+				
+				try {				
+					
+					rs = databaseConnectWindow.dbPortal.executeParameterizedQuery("SELECT operator_id, operator_first_name, " + "" +
+							"operator_last_name FROM operators WHERE operator_username = ? AND operator_password = ?", 
+							loginUsernameTextField.getText(), Md5hashcalc.calculateMD5hash(password));							
+				}
+				catch (Exception ex) {
+					System.exit(-1);
+				}
+				
+				if (rs != null) {
+					
+					try {
+						
+						loggedUserId = rs.getInt(1);
+						loggedUserNames = rs.getString(2) + " " + rs.getString(3);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", "  ", 
+								JOptionPane.ERROR_MESSAGE);
+						return;
+					}
+					
+					this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+				}
+				else {
+					JOptionPane.showMessageDialog(this, "   !", "  ", 
+							JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}		
+	}
+	
+	protected void createNewOperatorButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				char[] pass = newPasswordPasswordField.getPassword();
+				String password = "";
+				String encryptedPassword = "";
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				char[] pass2 = newPasswordPasswordAgainField.getPassword();
+				
+				if (pass.length == pass2.length) {
+				
+						for (int i = 0; i < pass.length; i++) {
+							
+							if (pass[i] != pass2[i]) {
+								
+								JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+								return;
+							}
+						}
+				}
+				else {
+				
+					JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+					return;
+				}
+								
+				if ((newUsernameTextField.getText().length() > 3) && (password.length() > 3) && 
+						(newFirstNameTextField.getText().length() > 3) && (newLastNameTextField.getText().length() > 3)) {
+					
+					try {
+						
+						encryptedPassword = Md5hashcalc.calculateMD5hash(password);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", " ", JOptionPane.ERROR_MESSAGE);
+						System.exit(-1);
+					}
+					
+					ResultSet rs = databaseConnectWindow.dbPortal.executeParameterizedQuery(
+							"SELECT COUNT(*) FROM operators WHERE operator_username=?",	newUsernameTextField.getText());
+					
+					int usersCount = 0;
+					try {
+						
+						usersCount = rs.getInt(1);
+					}
+					catch (Exception ex) {						
+					}					
+					
+					if ((databaseConnectWindow.dbPortal.getLastError() == null) && (usersCount == 0)) {						
+						
+						//no such existing username so now we create it
+						if (databaseConnectWindow.dbPortal.executeParameterizedNonQuery(
+								"INSERT INTO operators(operator_username, operator_password, operator_first_name, " + 
+								"operator_last_name) VALUES(?, ?, ?, ?)", newUsernameTextField.getText(), encryptedPassword,
+								newFirstNameTextField.getText(), newLastNameTextField.getText()) != 1) {
+							
+							JOptionPane.showMessageDialog(this, "     !", "", JOptionPane.ERROR_MESSAGE);
+						}
+						else { //everything ok so login now
+							
+							loginUsernameTextField.setText(newUsernameTextField.getText());
+							loginPasswordPasswordField.setText(password);
+							loginButton_actionPerformed(null);
+						}						
+					}
+					else {
+						
+						if (databaseConnectWindow.dbPortal.getLastError() != null) {
+							
+							JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);							
+						}
+						else {
+							
+							JOptionPane.showMessageDialog(this, "      .", "   ", JOptionPane.ERROR_MESSAGE);							
+						}
+					}					
+				}
+				else {
+					
+					JOptionPane.showMessageDialog(this, "    - !", " ", JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+		}		
+	}
+
+}

programming_language: Java
filename: f0b87e7ea45d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,395 @@
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.EventQueue;
+import java.awt.Insets;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.awt.event.WindowListener;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JSeparator;
+import javax.swing.SpringLayout;
+import javax.swing.border.EtchedBorder;
+import org.jdesktop.layout.GroupLayout;
+import org.jdesktop.layout.LayoutStyle;
+import com.jgoodies.forms.factories.FormFactory;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.ColumnSpec;
+import com.jgoodies.forms.layout.FormLayout;
+import com.jgoodies.forms.layout.RowSpec;
+
+
+public class mainWindow extends JFrame {
+
+	private final JMenuBar mainWindowMenu = new JMenuBar();
+	private final JMenu File = new JMenu();
+	private final JMenuItem FileConnectToDb = new JMenuItem();
+	private final JMenu Operations = new JMenu();
+	private final JMenu Help = new JMenu();
+	private final JMenuItem HelpAbout = new JMenuItem();
+	private final JMenuItem FileExit = new JMenuItem();
+	private static mainWindow mainWindowPointer;
+	
+	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
+	private final JPanel mainWindowStatusPanel = new JPanel();
+	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogin = new JButton();
+	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
+
+	private final JLabel mainWindowStatusPanelSeparatorLabel = new JLabel();
+	private final JLabel mainWindowStatusPanelSeparatorLabel2 = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogout = new JButton();
+	
+	private final JMenuItem operationsProductsManagement = new JMenuItem();
+	private final JMenuItem operationsOrdersManagement = new JMenuItem();
+	private final JMenuItem operationsNewOrder = new JMenuItem();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					mainWindow frame = new mainWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public mainWindow() {
+		super();
+		setBounds(100, 100, 682, 438);
+		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		mainWindowPointer = this;
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//		
+	}
+	private void jbInit() throws Exception {
+		addWindowListener(new ThisWindowListener());
+		getContentPane().setLayout(new BorderLayout());
+		setTitle("eShop 1.00 (C) 2013   &  ");
+		setName("mainWindow");
+		
+		setJMenuBar(mainWindowMenu);
+		
+		mainWindowMenu.add(File);
+		File.setText("");
+		
+		File.add(FileConnectToDb);
+		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
+		FileConnectToDb.setText("   ");
+		
+		File.add(FileDisconnectFromDb);
+		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
+		FileDisconnectFromDb.setText("   ");
+		FileDisconnectFromDb.setEnabled(false);
+
+		File.addSeparator();
+		
+		File.add(FileExit);
+		FileExit.addActionListener(new FileExitActionListener());
+		FileExit.setText("");
+		
+		mainWindowMenu.add(Operations);
+		Operations.setText("");
+		Operations.setEnabled(false);
+		
+		Operations.add(operationsNewOrder);
+		operationsNewOrder.addActionListener(new OperationsNewOrderActionListener());
+		operationsNewOrder.setText(" ");
+
+		Operations.addSeparator();
+		
+		Operations.add(operationsProductsManagement);
+		operationsProductsManagement.addActionListener(new OperationsProductsManagementActionListener());
+		operationsProductsManagement.setText("  ");
+		
+		Operations.add(operationsOrdersManagement);
+		operationsOrdersManagement.addActionListener(new OperationsOrdersManagementActionListener());
+		operationsOrdersManagement.setText("  ");
+		
+		mainWindowMenu.add(Help);
+		Help.setText("");
+		
+		Help.add(HelpAbout);
+		HelpAbout.addActionListener(new HelpAboutActionListener());
+		HelpAbout.setText("");
+		
+		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
+		mainWindowStatusPanel.setLayout(new FormLayout(
+			new ColumnSpec[] {
+				ColumnSpec.decode("149dlu"),
+				ColumnSpec.decode("72px"),
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC},
+			new RowSpec[] {
+				FormFactory.RELATED_GAP_ROWSPEC,
+				RowSpec.decode("16px")}));
+		mainWindowStatusPanel.setSize(666, 25);
+		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
+		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
+		
+		mainWindowStatusPanelLoggedUserLabel.setText(":");
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogin, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogin.addActionListener(new MainWindowStatusPanelLoggedUserLoginActionListener());
+		mainWindowStatusPanelLoggedUserLogin.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(4, 1, 1, 2, CellConstraints.CENTER, CellConstraints.DEFAULT));
+		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
+		mainWindowStatusPanelLoggedUserSettings.setMargin(new Insets(2, 14, 2, 14));
+		mainWindowStatusPanelLoggedUserSettings.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel, new CellConstraints(3, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel2, new CellConstraints(5, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel2.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogout, new CellConstraints(6, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogout.addActionListener(new MainWindowStatusPanelLoggedUserLogoutActionListener());
+		mainWindowStatusPanelLoggedUserLogout.setText("");
+		mainWindowStatusPanelSetEnabled(false);
+	}
+	
+	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
+		
+		Component[] comps = mainWindowStatusPanel.getComponents();
+		
+		for (int i = 0; i < comps.length; i++) {
+		
+			comps[i].setEnabled(enable);	
+		}
+		
+		mainWindowStatusPanel.setEnabled(enable);
+	}
+	
+	private class ThisWindowListener extends WindowAdapter {
+		public void windowClosing(WindowEvent e) {
+			this_windowClosing(e);
+		}
+	}
+	private class FileExitActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileExit_actionPerformed(e);
+		}
+	}
+	private class FileConnectToDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileConnectToDb_actionPerformed(e);
+		}
+	}
+	private class FileDisconnectFromDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileDisconnectFromDb_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogin_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLogoutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogout_actionPerformed(e);
+		}
+	}
+	private class HelpAboutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			helpAbout_actionPerformed(e);
+		}
+	}
+	private class OperationsProductsManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsProductsManagement_actionPerformed(e);
+		}
+	}
+	private class OperationsNewOrderActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsNewOrder_actionPerformed(e);
+		}
+	}
+	private class OperationsOrdersManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsOrdersManagement_actionPerformed(e);
+		}
+	}
+
+	protected void this_windowClosing(WindowEvent e) {
+		
+		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				databaseConnectWindow.dbPortal.finalize();
+			}
+		}
+		this.dispose();
+		//System.exit(0);
+	}
+	
+	protected void fileExit_actionPerformed(ActionEvent e) {
+
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
+		
+		databaseConnectWindow dcw = new databaseConnectWindow();
+		dcw.setVisible(true);
+		dcw.addWindowListener(databaseConnectWindowClosing);
+	}
+	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
+		
+        public void windowClosing(WindowEvent e) {
+            
+        	e.getWindow().dispose(); 
+        	
+        	if (databaseConnectWindow.dbPortal != null) {
+    			
+    			if (databaseConnectWindow.dbPortal.isConnected()) {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(true);
+    				mainWindowPointer.FileConnectToDb.setEnabled(false);
+    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
+    			}
+    			else {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(false);
+    			}
+    		}            
+        }
+    };
+    
+    ////////////////////////////////////////////////////////////////////////
+    
+	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			databaseConnectWindow.dbPortal.finalize();
+			
+			this.FileConnectToDb.setEnabled(true);
+			this.FileDisconnectFromDb.setEnabled(false);			
+			this.Operations.setEnabled(false);
+			this.mainWindowStatusPanelSetEnabled(false);	
+			this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			operatorUserLoginWindow.loggedUserId = -1;
+		}
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
+		
+		operatorUserLoginWindow oul = new operatorUserLoginWindow();
+		oul.setVisible(true);
+		oul.addWindowListener(operatorUserLoginWindowClosing);
+	}
+	private static WindowListener operatorUserLoginWindowClosing = new WindowAdapter() {
+
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.Operations.setEnabled(true);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserLoginWindow.loggedUserNames);
+			}
+			else {
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+		
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+		
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		operatorUserSettingsWindow ousw = new operatorUserSettingsWindow();
+		ousw.setVisible(true);
+		ousw.addWindowListener(operatorUserSettingsWindowClosing);
+	}
+	
+	private static WindowListener operatorUserSettingsWindowClosing = new WindowAdapter() {
+		
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserSettingsWindow.operatorFirstNameLastNameCombination);
+			}
+			else { //if operator was deleted
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogout_actionPerformed(ActionEvent e) {
+		
+		this.Operations.setEnabled(false);
+		this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+		operatorUserLoginWindow.loggedUserId = -1;
+	}
+	
+	protected void helpAbout_actionPerformed(ActionEvent e) {
+		
+		JOptionPane.showMessageDialog(this, "eShop ver.-1.00\n(C) 2013   &  ", "", JOptionPane.INFORMATION_MESSAGE);
+	}
+	
+	protected void operationsProductsManagement_actionPerformed(ActionEvent e) {
+		//TODO...		
+	}
+	protected void operationsNewOrder_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	protected void operationsOrdersManagement_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	
+	
+	
+	
+}

programming_language: Java
filename: 10685414a15d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,511 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for variables like String, int, double ...)
+	 * @return int the number of affected things
+	 */
+	
+	public int executeParameterizedQuery(String query, Object[] parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		//TODO...
+		// boolean
+		// String
+		// char[]
+		// byte
+		// short
+		// int
+		// long
+		// double
+		// float
+		// Date
+		// null ???
+		
+		try {
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				if (parameters[i] instanceof String) {
+					sqlStatement.set
+				}
+			}
+			
+			sqlStatement.
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: 00fa639bb65c00121e34961e0ace9d22
change_type: ModificationType.DELETE
diff: @@ -1,260 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.EventQueue;
-import java.awt.FlowLayout;
-import java.awt.GridLayout;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSeparator;
-import javax.swing.SpringLayout;
-import javax.swing.border.BevelBorder;
-import javax.swing.border.EtchedBorder;
-import org.jdesktop.layout.GroupLayout;
-import org.jdesktop.layout.LayoutStyle;
-import com.jgoodies.forms.factories.FormFactory;
-import com.jgoodies.forms.layout.CellConstraints;
-import com.jgoodies.forms.layout.ColumnSpec;
-import com.jgoodies.forms.layout.FormLayout;
-import com.jgoodies.forms.layout.RowSpec;
-
-public class mainWindow extends JFrame {
-
-	private final JMenuBar mainWindowMenu = new JMenuBar();
-	private final JMenu File = new JMenu();
-	private final JMenuItem FileConnectToDb = new JMenuItem();
-	private final JMenu Operations = new JMenu();
-	private final JMenu Help = new JMenu();
-	private final JMenuItem HelpAbout = new JMenuItem();
-	private final JMenuItem FileExit = new JMenuItem();
-	private static mainWindow mainWindowPointer;
-	
-	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
-	private final JPanel mainWindowStatusPanel = new JPanel();
-	private final JPanel panel = new JPanel();
-	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
-	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					mainWindow frame = new mainWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public mainWindow() {
-		super();
-		setBounds(100, 100, 682, 438);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		mainWindowPointer = this;
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//		
-	}
-	private void jbInit() throws Exception {
-		addWindowListener(new ThisWindowListener());
-		getContentPane().setLayout(new BorderLayout());
-		setTitle("eShop 1.00 (C) 2013   &  ");
-		setName("mainWindow");
-		
-		setJMenuBar(mainWindowMenu);
-		
-		mainWindowMenu.add(File);
-		File.setText("");
-		
-		File.add(FileConnectToDb);
-		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
-		FileConnectToDb.setText("   ");
-		
-		File.add(FileDisconnectFromDb);
-		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
-		FileDisconnectFromDb.setText("   ");
-		FileDisconnectFromDb.setEnabled(false);
-
-		File.addSeparator();
-		
-		File.add(FileExit);
-		FileExit.addActionListener(new FileExitActionListener());
-		FileExit.setText("");
-		
-		mainWindowMenu.add(Operations);
-		Operations.setText("");
-		Operations.setEnabled(false);
-		
-		mainWindowMenu.add(Help);
-		Help.setText("");
-		
-		Help.add(HelpAbout);
-		HelpAbout.setText("");
-		
-		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
-		mainWindowStatusPanel.setLayout(new FormLayout(
-			new ColumnSpec[] {
-				ColumnSpec.decode("149dlu"),
-				ColumnSpec.decode("72px"),
-				FormFactory.DEFAULT_COLSPEC},
-			new RowSpec[] {
-				FormFactory.RELATED_GAP_ROWSPEC,
-				RowSpec.decode("16px")}));
-		mainWindowStatusPanel.setSize(666, 25);
-		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
-		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
-		
-		mainWindowStatusPanelLoggedUserLabel.setText(":");
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
-		
-		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(2, 1, 1, 2));
-		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
-		mainWindowStatusPanelLoggedUserSettings.setText("");
-		mainWindowStatusPanelSetEnabled(false);
-	}
-	
-	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
-		
-		Component[] comps = mainWindowStatusPanel.getComponents();
-		
-		for (int i = 0; i < comps.length; i++) {
-		
-			comps[i].setEnabled(enable);	
-		}
-		
-		mainWindowStatusPanel.setEnabled(enable);
-	}
-	
-	private class ThisWindowListener extends WindowAdapter {
-		public void windowClosing(WindowEvent e) {
-			this_windowClosing(e);
-		}
-	}
-	private class FileExitActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileExit_actionPerformed(e);
-		}
-	}
-	private class FileConnectToDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileConnectToDb_actionPerformed(e);
-		}
-	}
-	private class FileDisconnectFromDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileDisconnectFromDb_actionPerformed(e);
-		}
-	}
-	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
-		}
-	}
-
-	protected void this_windowClosing(WindowEvent e) {
-		
-		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			if (databaseConnectWindow.dbPortal.isConnected()) {
-				
-				databaseConnectWindow.dbPortal.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
-			}
-		}
-		this.dispose();
-		//System.exit(0);
-	}
-	
-	protected void fileExit_actionPerformed(ActionEvent e) {
-
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
-	}
-	
-	////////////////////////////////////////////////////////////////////////
-	
-	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
-		
-		//databaseConnectWindow.main(null);
-		databaseConnectWindow dcw = new databaseConnectWindow();
-		dcw.setVisible(true);
-		dcw.addWindowListener(databaseConnectWindowClosing);
-	}
-	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
-		
-        public void windowClosing(WindowEvent e) {
-            
-        	e.getWindow().dispose(); 
-        	
-        	if (databaseConnectWindow.dbPortal != null) {
-    			
-    			if (databaseConnectWindow.dbPortal.isConnected()) {
-    				
-    				//FIXME mainWindowPointer.Operations.setEnabled(true);
-    				mainWindowPointer.mainWindowStatusPanelSetEnabled(true);
-    				mainWindowPointer.FileConnectToDb.setEnabled(false);
-    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
-    			}
-    			else {
-    				//FIXME mainWindowPointer.Operations.setEnabled(false);
-    				mainWindowPointer.mainWindowStatusPanelSetEnabled(false);
-    			}
-    		}            
-        }
-    };
-    
-    ////////////////////////////////////////////////////////////////////////
-    
-	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			databaseConnectWindow.dbPortal.finallize();
-			
-			this.FileConnectToDb.setEnabled(true);
-			this.FileDisconnectFromDb.setEnabled(false);			
-			this.Operations.setEnabled(false);
-			this.mainWindowStatusPanelSetEnabled(false);			
-		}
-	}
-	
-	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
-		
-		operatorUserLoginWindow oul = new operatorUserLoginWindow();
-		oul.setVisible(true);
-		oul.addWindowListener(operatorUserLoginWindowClosing);
-	}
-	private static WindowListener operatorUserLoginWindowClosing = new WindowAdapter() {
-
-		public void windowClosing(WindowEvent e) {
-			
-		}
-	}
-	
-}

programming_language: unknown
filename: 10e72249585b0012179f93dc572b551d
change_type: ModificationType.DELETE
diff: @@ -1,178 +0,0 @@
-import java.awt.EventQueue;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.WindowEvent;
-
-import javax.swing.JButton;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPasswordField;
-import javax.swing.JTextField;
-import javax.swing.JOptionPane;
-
-import database_management.MySQLdbManager;
-
-public class databaseConnectWindow extends JFrame {
-
-	private final JLabel label = new JLabel();
-	private final JLabel label_1 = new JLabel();
-	private final JLabel label_2 = new JLabel();
-	private final JLabel label_3 = new JLabel();
-	private final JLabel label_4 = new JLabel();
-	private final JButton connectToDatabaseButton = new JButton();
-	private final JTextField mysqlServerAddressTextField = new JTextField();
-	private final JTextField mysqlPortTextField = new JTextField();
-	private final JTextField mysqlDatabaseNameTextField = new JTextField();
-	private final JTextField mysqlUsernameTextField = new JTextField();
-	private final JPasswordField mysqlPasswordPasswordField = new JPasswordField();
-	public static MySQLdbManager dbPortal = null;
-	
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					databaseConnectWindow frame = new databaseConnectWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public databaseConnectWindow() {
-		super();
-		setBounds(100, 100, 384, 203);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//
-	}
-	private void jbInit() throws Exception {
-		getContentPane().setLayout(null);
-		setAlwaysOnTop(true);
-		setResizable(false);
-		setTitle("   ");
-		setName("databaseConnectWindowFrame");
-		
-		getContentPane().add(label);
-		label.setText("  MySQL :");
-		label.setBounds(10, 10, 165, 16);
-		
-		getContentPane().add(label_1);
-		label_1.setText("   :");
-		label_1.setBounds(10, 54, 165, 16);
-		
-		getContentPane().add(label_2);
-		label_2.setText(":");
-		label_2.setBounds(10, 32, 156, 16);
-		
-		getContentPane().add(label_3);
-		label_3.setText(" :");
-		label_3.setBounds(10, 76, 165, 16);
-		
-		getContentPane().add(label_4);
-		label_4.setText(":");
-		label_4.setBounds(10, 98, 156, 16);
-		
-		getContentPane().add(connectToDatabaseButton);
-		connectToDatabaseButton.addActionListener(new ConnectToDatabaseButtonActionListener());
-		connectToDatabaseButton.setText(" !");
-		connectToDatabaseButton.setBounds(132, 135, 106, 26);
-		
-		getContentPane().add(mysqlServerAddressTextField);
-		mysqlServerAddressTextField.setText("127.0.0.1");
-		mysqlServerAddressTextField.setBounds(181, 8, 185, 20);
-		
-		getContentPane().add(mysqlPortTextField);
-		mysqlPortTextField.setText("3306");
-		mysqlPortTextField.setBounds(181, 30, 91, 20);
-		
-		getContentPane().add(mysqlDatabaseNameTextField);
-		mysqlDatabaseNameTextField.setText("shop");
-		mysqlDatabaseNameTextField.setBounds(181, 52, 181, 20);
-		
-		getContentPane().add(mysqlUsernameTextField);
-		mysqlUsernameTextField.setText("root");
-		mysqlUsernameTextField.setBounds(181, 76, 180, 18);
-		
-		getContentPane().add(mysqlPasswordPasswordField);
-		mysqlPasswordPasswordField.setBounds(181, 96, 181, 20);
-	}
-	private class ConnectToDatabaseButtonActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			connectToDatabaseButton_actionPerformed(e);
-		}
-	}
-	protected void connectToDatabaseButton_actionPerformed(ActionEvent e) {
-		
-		String password = "";
-		
-		char [] pass = mysqlPasswordPasswordField.getPassword();
-		for (int i = 0; i < pass.length; i++) {
-			
-			password += pass[i];
-		}
-		
-		dbPortal = new MySQLdbManager(mysqlServerAddressTextField.getText(),
-				mysqlDatabaseNameTextField.getText(), Integer.parseInt(mysqlPortTextField.getText()),
-				mysqlUsernameTextField.getText(), password);		
-		
-		
-		if (dbPortal.connect() == false) { //now check for database name that is not existing
-			
-			dbPortal.setMySqlActiveDatabase("");
-			dbPortal.disconnect(); //just in case
-			
-			if (dbPortal.connect() == false) { //connection settings problem or not running MySQL server
-				dbPortal.finallize();
-				JOptionPane.showMessageDialog(this, "  !     MySQL   !", 
-						"  !", JOptionPane.ERROR_MESSAGE);
-				
-				return;
-			}
-			else { //will have to create new database
-				
-				dbPortal.disconnect();
-				
-				if (JOptionPane.showConfirmDialog(this, "       : " + mysqlDatabaseNameTextField.getText() +
-						".\n  ?", "    ?", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
-					
-					createNewDatabaseAndTables();
-				}
-				else {
-				
-					dbPortal.finallize();
-					return;
-				}
-				
-				this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
-			}			
-		}
-		
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
-	}
-	
-	private void createNewDatabaseAndTables() {
-		
-		dbPortal.setMySqlActiveDatabase("");
-		
-		if (dbPortal.connect() == false) {
-			
-			dbPortal.finallize();
-		}
-		
-	}
-
-}

programming_language: unknown
filename: d0782d99a45d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,391 @@
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.EventQueue;
+import java.awt.Insets;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.awt.event.WindowListener;
+import javax.swing.JButton;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.border.EtchedBorder;
+import org.jdesktop.layout.LayoutStyle;
+import com.jgoodies.forms.factories.FormFactory;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.ColumnSpec;
+import com.jgoodies.forms.layout.FormLayout;
+import com.jgoodies.forms.layout.RowSpec;
+
+
+public class mainWindow extends JFrame {
+
+	private final JMenuBar mainWindowMenu = new JMenuBar();
+	private final JMenu File = new JMenu();
+	private final JMenuItem FileConnectToDb = new JMenuItem();
+	private final JMenu Operations = new JMenu();
+	private final JMenu Help = new JMenu();
+	private final JMenuItem HelpAbout = new JMenuItem();
+	private final JMenuItem FileExit = new JMenuItem();
+	private static mainWindow mainWindowPointer;
+	
+	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
+	private final JPanel mainWindowStatusPanel = new JPanel();
+	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogin = new JButton();
+	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
+
+	private final JLabel mainWindowStatusPanelSeparatorLabel = new JLabel();
+	private final JLabel mainWindowStatusPanelSeparatorLabel2 = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogout = new JButton();
+	
+	private final JMenuItem operationsProductsManagement = new JMenuItem();
+	private final JMenuItem operationsOrdersManagement = new JMenuItem();
+	private final JMenuItem operationsNewOrder = new JMenuItem();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					mainWindow frame = new mainWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public mainWindow() {
+		super();
+		setBounds(100, 100, 682, 438);
+		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		mainWindowPointer = this;
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//		
+	}
+	private void jbInit() throws Exception {
+		addWindowListener(new ThisWindowListener());
+		getContentPane().setLayout(new BorderLayout());
+		setTitle("eShop 1.00 (C) 2013   &  ");
+		setName("mainWindow");
+		
+		setJMenuBar(mainWindowMenu);
+		
+		mainWindowMenu.add(File);
+		File.setText("");
+		
+		File.add(FileConnectToDb);
+		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
+		FileConnectToDb.setText("   ");
+		
+		File.add(FileDisconnectFromDb);
+		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
+		FileDisconnectFromDb.setText("   ");
+		FileDisconnectFromDb.setEnabled(false);
+
+		File.addSeparator();
+		
+		File.add(FileExit);
+		FileExit.addActionListener(new FileExitActionListener());
+		FileExit.setText("");
+		
+		mainWindowMenu.add(Operations);
+		Operations.setText("");
+		Operations.setEnabled(false);
+		
+		Operations.add(operationsNewOrder);
+		operationsNewOrder.addActionListener(new OperationsNewOrderActionListener());
+		operationsNewOrder.setText(" ");
+
+		Operations.addSeparator();
+		
+		Operations.add(operationsProductsManagement);
+		operationsProductsManagement.addActionListener(new OperationsProductsManagementActionListener());
+		operationsProductsManagement.setText("  ");
+		
+		Operations.add(operationsOrdersManagement);
+		operationsOrdersManagement.addActionListener(new OperationsOrdersManagementActionListener());
+		operationsOrdersManagement.setText("  ");
+		
+		mainWindowMenu.add(Help);
+		Help.setText("");
+		
+		Help.add(HelpAbout);
+		HelpAbout.addActionListener(new HelpAboutActionListener());
+		HelpAbout.setText("");
+		
+		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
+		mainWindowStatusPanel.setLayout(new FormLayout(
+			new ColumnSpec[] {
+				ColumnSpec.decode("149dlu"),
+				ColumnSpec.decode("72px"),
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC},
+			new RowSpec[] {
+				FormFactory.RELATED_GAP_ROWSPEC,
+				RowSpec.decode("16px")}));
+		mainWindowStatusPanel.setSize(666, 25);
+		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
+		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
+		
+		mainWindowStatusPanelLoggedUserLabel.setText(":");
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogin, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogin.addActionListener(new MainWindowStatusPanelLoggedUserLoginActionListener());
+		mainWindowStatusPanelLoggedUserLogin.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(4, 1, 1, 2, CellConstraints.CENTER, CellConstraints.DEFAULT));
+		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
+		mainWindowStatusPanelLoggedUserSettings.setMargin(new Insets(2, 14, 2, 14));
+		mainWindowStatusPanelLoggedUserSettings.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel, new CellConstraints(3, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel2, new CellConstraints(5, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel2.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogout, new CellConstraints(6, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogout.addActionListener(new MainWindowStatusPanelLoggedUserLogoutActionListener());
+		mainWindowStatusPanelLoggedUserLogout.setText("");
+		mainWindowStatusPanelSetEnabled(false);
+	}
+	
+	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
+		
+		Component[] comps = mainWindowStatusPanel.getComponents();
+		
+		for (int i = 0; i < comps.length; i++) {
+		
+			comps[i].setEnabled(enable);	
+		}
+		
+		mainWindowStatusPanel.setEnabled(enable);
+	}
+	
+	private class ThisWindowListener extends WindowAdapter {
+		public void windowClosing(WindowEvent e) {
+			this_windowClosing(e);
+		}
+	}
+	private class FileExitActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileExit_actionPerformed(e);
+		}
+	}
+	private class FileConnectToDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileConnectToDb_actionPerformed(e);
+		}
+	}
+	private class FileDisconnectFromDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileDisconnectFromDb_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogin_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLogoutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogout_actionPerformed(e);
+		}
+	}
+	private class HelpAboutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			helpAbout_actionPerformed(e);
+		}
+	}
+	private class OperationsProductsManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsProductsManagement_actionPerformed(e);
+		}
+	}
+	private class OperationsNewOrderActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsNewOrder_actionPerformed(e);
+		}
+	}
+	private class OperationsOrdersManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsOrdersManagement_actionPerformed(e);
+		}
+	}
+
+	protected void this_windowClosing(WindowEvent e) {
+		
+		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				databaseConnectWindow.dbPortal.finalize();
+			}
+		}
+		this.dispose();
+		//System.exit(0);
+	}
+	
+	protected void fileExit_actionPerformed(ActionEvent e) {
+
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
+		
+		databaseConnectWindow dcw = new databaseConnectWindow();
+		dcw.setVisible(true);
+		dcw.addWindowListener(databaseConnectWindowClosing);
+	}
+	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
+		
+        public void windowClosing(WindowEvent e) {
+            
+        	e.getWindow().dispose(); 
+        	
+        	if (databaseConnectWindow.dbPortal != null) {
+    			
+    			if (databaseConnectWindow.dbPortal.isConnected()) {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(true);
+    				mainWindowPointer.FileConnectToDb.setEnabled(false);
+    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
+    			}
+    			else {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(false);
+    			}
+    		}            
+        }
+    };
+    
+    ////////////////////////////////////////////////////////////////////////
+    
+	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			databaseConnectWindow.dbPortal.finalize();
+			
+			this.FileConnectToDb.setEnabled(true);
+			this.FileDisconnectFromDb.setEnabled(false);			
+			this.Operations.setEnabled(false);
+			this.mainWindowStatusPanelSetEnabled(false);	
+			this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			operatorUserLoginWindow.loggedUserId = -1;
+		}
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
+		
+		operatorUserLoginWindow oul = new operatorUserLoginWindow();
+		oul.setVisible(true);
+		oul.addWindowListener(operatorUserLoginWindowClosing);
+	}
+	private static WindowListener operatorUserLoginWindowClosing = new WindowAdapter() {
+
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.Operations.setEnabled(true);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserLoginWindow.loggedUserNames);
+			}
+			else {
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+		
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+		
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		operatorUserSettingsWindow ousw = new operatorUserSettingsWindow();
+		ousw.setVisible(true);
+		ousw.addWindowListener(operatorUserSettingsWindowClosing);
+	}
+	
+	private static WindowListener operatorUserSettingsWindowClosing = new WindowAdapter() {
+		
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserSettingsWindow.operatorFirstNameLastNameCombination);
+			}
+			else { //if operator was deleted
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogout_actionPerformed(ActionEvent e) {
+		
+		this.Operations.setEnabled(false);
+		this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+		operatorUserLoginWindow.loggedUserId = -1;
+	}
+	
+	protected void helpAbout_actionPerformed(ActionEvent e) {
+		
+		JOptionPane.showMessageDialog(this, "eShop ver.-1.00\n(C) 2013   &  ", "", JOptionPane.INFORMATION_MESSAGE);
+	}
+	
+	protected void operationsProductsManagement_actionPerformed(ActionEvent e) {
+		//TODO...		
+	}
+	protected void operationsNewOrder_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	protected void operationsOrdersManagement_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	
+	
+	
+	
+}

programming_language: Java
filename: c08d3857a45d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,251 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JButton;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+
+import java.sql.ResultSet;
+import database_management.MySQLdbManager;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserSettingsWindow extends JFrame {
+
+	private final JLabel usernameLabel = new JLabel();
+	private final JLabel passwordLabel = new JLabel();
+	private final JLabel passwordAgainLabel = new JLabel();
+	private final JLabel nameLabel = new JLabel();
+	private final JLabel lastNameLabel = new JLabel();
+	private final JButton updateButton = new JButton();
+	private final JTextField firstNameTextField = new JTextField();
+	private final JTextField lastNameTextField = new JTextField();
+	private final JPasswordField passwordPasswordField = new JPasswordField();
+	private final JPasswordField passwordAgainPasswordField = new JPasswordField();
+	
+	private String currentOperatorPassword = "";
+	public static String operatorFirstNameLastNameCombination = "";
+	
+	private final JButton deleteOperator = new JButton();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserSettingsWindow() {
+		super();
+		setBounds(100, 100, 314, 255);
+		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setResizable(false);
+		setAlwaysOnTop(true);
+		setTitle("  ");
+		setName("operatorUserSettings");
+		
+		getContentPane().add(usernameLabel);
+		usernameLabel.setText(":");
+		usernameLabel.setBounds(10, 0, 278, 16);
+		
+		getContentPane().add(passwordLabel);
+		passwordLabel.setText(":");
+		passwordLabel.setBounds(10, 76, 97, 16);
+		
+		getContentPane().add(passwordAgainLabel);
+		passwordAgainLabel.setText(" :");
+		passwordAgainLabel.setBounds(10, 95, 97, 16);
+		
+		getContentPane().add(nameLabel);
+		nameLabel.setText(":");
+		nameLabel.setBounds(10, 32, 97, 16);
+		
+		getContentPane().add(lastNameLabel);
+		lastNameLabel.setText(":");
+		lastNameLabel.setBounds(10, 54, 97, 16);
+		
+		getContentPane().add(updateButton);
+		updateButton.addActionListener(new UpdateButtonActionListener());
+		updateButton.setText("");
+		updateButton.setBounds(90, 130, 137, 26);
+		
+		getContentPane().add(firstNameTextField);
+		firstNameTextField.setBounds(113, 30, 175, 20);
+		
+		getContentPane().add(lastNameTextField);
+		lastNameTextField.setBounds(113, 52, 175, 20);
+		
+		getContentPane().add(passwordPasswordField);
+		passwordPasswordField.setBounds(113, 74, 175, 20);
+		
+		getContentPane().add(passwordAgainPasswordField);
+		passwordAgainPasswordField.setBounds(113, 97, 175, 20);
+		
+		getCurrentUserData();
+		
+		getContentPane().add(deleteOperator);
+		deleteOperator.addActionListener(new DeleteOperatorActionListener());
+		deleteOperator.setText(" ");
+		deleteOperator.setBounds(90, 189, 137, 26);
+	}
+	
+	private void getCurrentUserData() {
+		
+		if (databaseConnectWindow.dbPortal == null) {
+			return;
+		}
+		if (databaseConnectWindow.dbPortal.isConnected() == false) {
+			return;
+		}
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_username, operator_password, " + 
+				"operator_first_name, operator_last_name FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId);
+		
+		if ((rs == null) || (databaseConnectWindow.dbPortal.getLastError() != null)) {
+			return;
+		}
+		
+		try {
+			
+			usernameLabel.setText(": " + rs.getString(1));
+			currentOperatorPassword = rs.getString(2);
+			firstNameTextField.setText(rs.getString(3));
+			lastNameTextField.setText(rs.getString(4));
+		}
+		catch (Exception ex) {			
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+	}
+	
+	private class UpdateButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			updateButton_actionPerformed(e);
+		}
+	}
+	private class DeleteOperatorActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			deleteOperator_actionPerformed(e);
+		}
+	}
+	protected void updateButton_actionPerformed(ActionEvent e) {
+		
+		char[] pass = passwordPasswordField.getPassword();
+		String password = "";
+		
+		for (int i = 0; i < pass.length; i++) {
+			
+			password += pass[i];
+		}
+		
+		char[] pass2 = passwordAgainPasswordField.getPassword();
+		String password2 = "";
+		
+		for (int j = 0; j < pass2.length; j++) {
+			
+			password2 += pass2[j];
+		}
+		
+		if (password.compareTo(password2) != 0) {
+			
+			JOptionPane.showMessageDialog(this, "  !", "    ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		if (password.length() > 3) { //password update will be performed too
+			
+			try {
+				
+				password = Md5hashcalc.calculateMD5hash(password);
+				currentOperatorPassword = password;
+			}
+			catch (Exception ex) {
+				
+				JOptionPane.showMessageDialog(this, "       \n      !", "    ", JOptionPane.ERROR_MESSAGE);
+			}			
+		}
+		else {
+			if (password.length() > 0) {
+				
+				JOptionPane.showMessageDialog(this, "     4 !", "    ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		
+		if ((firstNameTextField.getText().length() <= 3) || (lastNameTextField.getText().length() <= 3)) {
+			
+			JOptionPane.showMessageDialog(this, "    !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		//FIXME prone to sql injection
+		if (databaseConnectWindow.dbPortal.executeNonQuery("UPDATE operators SET operator_password='" + currentOperatorPassword +
+				"', operator_first_name='" + firstNameTextField.getText() + "', operator_last_name='" + 
+				lastNameTextField.getText() + "' WHERE operator_id=" + operatorUserLoginWindow.loggedUserId) != 1) {
+		
+		//if (databaseConnectWindow.dbPortal.getLastError() != null) {
+			
+			JOptionPane.showMessageDialog(this, "    !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+		operatorUserLoginWindow.loggedUserNames = operatorFirstNameLastNameCombination; //in case
+		
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
+	}
+	
+	protected void deleteOperator_actionPerformed(ActionEvent e) {
+		
+		//we can not delete not existing operator
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		if (JOptionPane.showConfirmDialog(this, "       \n" + 
+				"  ,    .\n\n\t?", "   ", 
+				JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+			
+			if (databaseConnectWindow.dbPortal.executeNonQuery("DELETE FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId) != 1) {
+
+				JOptionPane.showMessageDialog(this, "  !", "   ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+			
+			operatorUserLoginWindow.loggedUserId = -1;
+			this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+		}
+		
+		return;
+	}
+
+}

programming_language: Java
filename: b0a19e69a15c00121e34961e0ace9d22
change_type: ModificationType.DELETE
diff: @@ -1,194 +0,0 @@
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.EventQueue;
-import java.awt.FlowLayout;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import javax.swing.BoxLayout;
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-
-import javax.swing.JFrame;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSeparator;
-import javax.swing.border.BevelBorder;
-import javax.swing.border.EtchedBorder;
-import com.jgoodies.forms.factories.FormFactory;
-import com.jgoodies.forms.layout.ColumnSpec;
-import com.jgoodies.forms.layout.FormLayout;
-import com.jgoodies.forms.layout.RowSpec;
-
-public class mainWindow extends JFrame {
-
-	private final JMenuBar mainWindowMenu = new JMenuBar();
-	private final JMenu File = new JMenu();
-	private final JMenuItem FileConnectToDb = new JMenuItem();
-	private final JMenu Operations = new JMenu();
-	private final JMenu Help = new JMenu();
-	private final JMenuItem HelpAbout = new JMenuItem();
-	private final JMenuItem FileExit = new JMenuItem();
-	private static mainWindow mainWindowPointer;
-	
-	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
-	private final JPanel mainWindowStatusPanel = new JPanel();
-	private final JPanel panel = new JPanel();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					mainWindow frame = new mainWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public mainWindow() {
-		super();
-		setBounds(100, 100, 682, 438);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		mainWindowPointer = this;
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//		
-	}
-	private void jbInit() throws Exception {
-		addWindowListener(new ThisWindowListener());
-		getContentPane().setLayout(new BorderLayout());
-		setTitle("eShop 1.00 (C) 2013   &  ");
-		setName("mainWindow");
-		
-		setJMenuBar(mainWindowMenu);
-		
-		mainWindowMenu.add(File);
-		File.setText("");
-		
-		File.add(FileConnectToDb);
-		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
-		FileConnectToDb.setText("   ");
-		
-		File.add(FileDisconnectFromDb);
-		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
-		FileDisconnectFromDb.setText("   ");
-		FileDisconnectFromDb.setEnabled(false);
-
-		File.addSeparator();
-		
-		File.add(FileExit);
-		FileExit.addActionListener(new FileExitActionListener());
-		FileExit.setText("");
-		
-		mainWindowMenu.add(Operations);
-		Operations.setText("");
-		Operations.setEnabled(false);
-		
-		mainWindowMenu.add(Help);
-		Help.setText("");
-		
-		Help.add(HelpAbout);
-		HelpAbout.setText("");
-		
-		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
-		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
-		mainWindowStatusPanel.setMinimumSize(new Dimension(0, 0));
-		mainWindowStatusPanel.setBounds(0, 357, 666, 40);		
-	}
-	
-	private class ThisWindowListener extends WindowAdapter {
-		public void windowClosing(WindowEvent e) {
-			this_windowClosing(e);
-		}
-	}
-	private class FileExitActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileExit_actionPerformed(e);
-		}
-	}
-	private class FileConnectToDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileConnectToDb_actionPerformed(e);
-		}
-	}
-	private class FileDisconnectFromDbActionListener implements ActionListener {
-		public void actionPerformed(ActionEvent e) {
-			fileDisconnectFromDb_actionPerformed(e);
-		}
-	}
-
-	protected void this_windowClosing(WindowEvent e) {
-		
-		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			if (databaseConnectWindow.dbPortal.isConnected()) {
-				
-				databaseConnectWindow.dbPortal.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
-			}
-		}
-		this.dispose();
-		//System.exit(0);
-	}
-	
-	protected void fileExit_actionPerformed(ActionEvent e) {
-
-		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
-	}
-	
-	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
-		
-		//databaseConnectWindow.main(null);
-		databaseConnectWindow dcw = new databaseConnectWindow();
-		dcw.setVisible(true);
-		dcw.addWindowListener(databaseConnectWindowClosing);
-	}
-	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
-		
-        public void windowClosing(WindowEvent e) {
-            
-        	e.getWindow().dispose(); 
-        	
-        	if (databaseConnectWindow.dbPortal != null) {
-    			
-    			if (databaseConnectWindow.dbPortal.isConnected()) {
-    				
-    				mainWindowPointer.Operations.setEnabled(true);
-    				mainWindowPointer.FileConnectToDb.setEnabled(false);
-    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
-    			}
-    			else {
-    				mainWindowPointer.Operations.setEnabled(false);
-    			}
-    		}            
-        }
-    };
-	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
-		
-		if (databaseConnectWindow.dbPortal != null) {
-			
-			databaseConnectWindow.dbPortal.finallize();
-			this.Operations.setEnabled(false);
-			this.FileDisconnectFromDb.setEnabled(false);
-			this.FileConnectToDb.setEnabled(true);
-		}
-	}
-	
-}

programming_language: unknown
filename: 10d6230fa55d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,250 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JButton;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserSettingsWindow extends JFrame {
+
+	private final JLabel usernameLabel = new JLabel();
+	private final JLabel passwordLabel = new JLabel();
+	private final JLabel passwordAgainLabel = new JLabel();
+	private final JLabel nameLabel = new JLabel();
+	private final JLabel lastNameLabel = new JLabel();
+	private final JButton updateButton = new JButton();
+	private final JTextField firstNameTextField = new JTextField();
+	private final JTextField lastNameTextField = new JTextField();
+	private final JPasswordField passwordPasswordField = new JPasswordField();
+	private final JPasswordField passwordAgainPasswordField = new JPasswordField();
+	
+	private String currentOperatorPassword = "";
+	public static String operatorFirstNameLastNameCombination = "";
+	
+	private final JButton deleteOperator = new JButton();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserSettingsWindow() {
+		super();
+		setBounds(100, 100, 314, 255);
+		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setResizable(false);
+		setAlwaysOnTop(true);
+		setTitle("  ");
+		setName("operatorUserSettings");
+		
+		getContentPane().add(usernameLabel);
+		usernameLabel.setText(":");
+		usernameLabel.setBounds(10, 0, 278, 16);
+		
+		getContentPane().add(passwordLabel);
+		passwordLabel.setText(":");
+		passwordLabel.setBounds(10, 76, 97, 16);
+		
+		getContentPane().add(passwordAgainLabel);
+		passwordAgainLabel.setText(" :");
+		passwordAgainLabel.setBounds(10, 95, 97, 16);
+		
+		getContentPane().add(nameLabel);
+		nameLabel.setText(":");
+		nameLabel.setBounds(10, 32, 97, 16);
+		
+		getContentPane().add(lastNameLabel);
+		lastNameLabel.setText(":");
+		lastNameLabel.setBounds(10, 54, 97, 16);
+		
+		getContentPane().add(updateButton);
+		updateButton.addActionListener(new UpdateButtonActionListener());
+		updateButton.setText("");
+		updateButton.setBounds(90, 130, 137, 26);
+		
+		getContentPane().add(firstNameTextField);
+		firstNameTextField.setBounds(113, 30, 175, 20);
+		
+		getContentPane().add(lastNameTextField);
+		lastNameTextField.setBounds(113, 52, 175, 20);
+		
+		getContentPane().add(passwordPasswordField);
+		passwordPasswordField.setBounds(113, 74, 175, 20);
+		
+		getContentPane().add(passwordAgainPasswordField);
+		passwordAgainPasswordField.setBounds(113, 97, 175, 20);
+		
+		getCurrentUserData();
+		
+		getContentPane().add(deleteOperator);
+		deleteOperator.addActionListener(new DeleteOperatorActionListener());
+		deleteOperator.setText(" ");
+		deleteOperator.setBounds(90, 189, 137, 26);
+	}
+	
+	private void getCurrentUserData() {
+		
+		if (databaseConnectWindow.dbPortal == null) {
+			return;
+		}
+		if (databaseConnectWindow.dbPortal.isConnected() == false) {
+			return;
+		}
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_username, operator_password, " + 
+				"operator_first_name, operator_last_name FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId);
+		
+		if ((rs == null) || (databaseConnectWindow.dbPortal.getLastError() != null)) {
+			return;
+		}
+		
+		try {
+			
+			usernameLabel.setText(": " + rs.getString(1));
+			currentOperatorPassword = rs.getString(2);
+			firstNameTextField.setText(rs.getString(3));
+			lastNameTextField.setText(rs.getString(4));
+		}
+		catch (Exception ex) {			
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+	}
+	
+	private class UpdateButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			updateButton_actionPerformed(e);
+		}
+	}
+	private class DeleteOperatorActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			deleteOperator_actionPerformed(e);
+		}
+	}
+	protected void updateButton_actionPerformed(ActionEvent e) {
+		
+		char[] pass = passwordPasswordField.getPassword();
+		String password = "";
+		
+		for (int i = 0; i < pass.length; i++) {
+			
+			password += pass[i];
+		}
+		
+		char[] pass2 = passwordAgainPasswordField.getPassword();
+		String password2 = "";
+		
+		for (int j = 0; j < pass2.length; j++) {
+			
+			password2 += pass2[j];
+		}
+		
+		if (password.compareTo(password2) != 0) {
+			
+			JOptionPane.showMessageDialog(this, "  !", "    ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		if (password.length() > 3) { //password update will be performed too
+			
+			try {
+				
+				password = Md5hashcalc.calculateMD5hash(password);
+				currentOperatorPassword = password;
+			}
+			catch (Exception ex) {
+				
+				JOptionPane.showMessageDialog(this, "       \n      !", "    ", JOptionPane.ERROR_MESSAGE);
+			}			
+		}
+		else {
+			if (password.length() > 0) {
+				
+				JOptionPane.showMessageDialog(this, "     4 !", "    ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		
+		if ((firstNameTextField.getText().length() <= 3) || (lastNameTextField.getText().length() <= 3)) {
+			
+			JOptionPane.showMessageDialog(this, "    !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		//FIXME prone to sql injection
+		if (databaseConnectWindow.dbPortal.executeNonQuery("UPDATE operators SET operator_password='" + currentOperatorPassword +
+				"', operator_first_name='" + firstNameTextField.getText() + "', operator_last_name='" + 
+				lastNameTextField.getText() + "' WHERE operator_id=" + operatorUserLoginWindow.loggedUserId) != 1) {
+		
+		//if (databaseConnectWindow.dbPortal.getLastError() != null) {
+			
+			JOptionPane.showMessageDialog(this, "    !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+		operatorUserLoginWindow.loggedUserNames = operatorFirstNameLastNameCombination; //in case
+		
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
+	}
+	
+	protected void deleteOperator_actionPerformed(ActionEvent e) {
+		
+		//we can not delete not existing operator
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		if (JOptionPane.showConfirmDialog(this, "       \n" + 
+				"  ,    .\n\n\t?", "   ", 
+				JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+			
+			if (databaseConnectWindow.dbPortal.executeNonQuery("DELETE FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId) != 1) {
+
+				JOptionPane.showMessageDialog(this, "  !", "   ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+			
+			operatorUserLoginWindow.loggedUserId = -1;
+			this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+		}
+		
+		return;
+	}
+
+}

programming_language: Java
filename: 603e699bac5d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,572 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return int the number of affected things
+	 */
+	
+	public int executeParameterizedNonQuery(String query, Object[] parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		//TODO...
+		// boolean - ok
+		// String  - ok
+		// char    - 
+		// byte    -
+		// short   -
+		// int     -
+		// long    -
+		// double  -
+		// float   -
+		// Date    -
+		// null ???
+		
+		try {
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i + 1, parameters[i]);
+				
+				/*if (parameters[i] instanceof Boolean) {
+					
+					sqlStatement.setBoolean(i, ((Boolean)parameters[i]).booleanValue());
+					continue;
+				}
+				if (parameters[i] instanceof String) {
+					
+					sqlStatement.setString(i, ((String)parameters[i].toString()));
+					continue;
+				}
+				if (parameters[i] instanceof Character) {
+					
+					sqlStatement.set
+				}*/
+			}
+			
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Executes parameterized query and returns ResultSet with data. For SELECT...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeParameterizedQuery(String query, Object... parameters) { //executes query and returns ResultSet 
+		
+		PreparedStatement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i + 1, parameters[i]);
+			}
+			
+			result = sqlStatement.executeQuery(query);
+			
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: 704ad386a45d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,393 @@
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.EventQueue;
+import java.awt.Insets;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.awt.event.WindowListener;
+import javax.swing.JButton;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.SpringLayout;
+import javax.swing.border.EtchedBorder;
+import org.jdesktop.layout.GroupLayout;
+import org.jdesktop.layout.LayoutStyle;
+import com.jgoodies.forms.factories.FormFactory;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.ColumnSpec;
+import com.jgoodies.forms.layout.FormLayout;
+import com.jgoodies.forms.layout.RowSpec;
+
+
+public class mainWindow extends JFrame {
+
+	private final JMenuBar mainWindowMenu = new JMenuBar();
+	private final JMenu File = new JMenu();
+	private final JMenuItem FileConnectToDb = new JMenuItem();
+	private final JMenu Operations = new JMenu();
+	private final JMenu Help = new JMenu();
+	private final JMenuItem HelpAbout = new JMenuItem();
+	private final JMenuItem FileExit = new JMenuItem();
+	private static mainWindow mainWindowPointer;
+	
+	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
+	private final JPanel mainWindowStatusPanel = new JPanel();
+	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogin = new JButton();
+	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
+
+	private final JLabel mainWindowStatusPanelSeparatorLabel = new JLabel();
+	private final JLabel mainWindowStatusPanelSeparatorLabel2 = new JLabel();
+	private final JButton mainWindowStatusPanelLoggedUserLogout = new JButton();
+	
+	private final JMenuItem operationsProductsManagement = new JMenuItem();
+	private final JMenuItem operationsOrdersManagement = new JMenuItem();
+	private final JMenuItem operationsNewOrder = new JMenuItem();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					mainWindow frame = new mainWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public mainWindow() {
+		super();
+		setBounds(100, 100, 682, 438);
+		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		mainWindowPointer = this;
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//		
+	}
+	private void jbInit() throws Exception {
+		addWindowListener(new ThisWindowListener());
+		getContentPane().setLayout(new BorderLayout());
+		setTitle("eShop 1.00 (C) 2013   &  ");
+		setName("mainWindow");
+		
+		setJMenuBar(mainWindowMenu);
+		
+		mainWindowMenu.add(File);
+		File.setText("");
+		
+		File.add(FileConnectToDb);
+		FileConnectToDb.addActionListener(new FileConnectToDbActionListener());
+		FileConnectToDb.setText("   ");
+		
+		File.add(FileDisconnectFromDb);
+		FileDisconnectFromDb.addActionListener(new FileDisconnectFromDbActionListener());
+		FileDisconnectFromDb.setText("   ");
+		FileDisconnectFromDb.setEnabled(false);
+
+		File.addSeparator();
+		
+		File.add(FileExit);
+		FileExit.addActionListener(new FileExitActionListener());
+		FileExit.setText("");
+		
+		mainWindowMenu.add(Operations);
+		Operations.setText("");
+		Operations.setEnabled(false);
+		
+		Operations.add(operationsNewOrder);
+		operationsNewOrder.addActionListener(new OperationsNewOrderActionListener());
+		operationsNewOrder.setText(" ");
+
+		Operations.addSeparator();
+		
+		Operations.add(operationsProductsManagement);
+		operationsProductsManagement.addActionListener(new OperationsProductsManagementActionListener());
+		operationsProductsManagement.setText("  ");
+		
+		Operations.add(operationsOrdersManagement);
+		operationsOrdersManagement.addActionListener(new OperationsOrdersManagementActionListener());
+		operationsOrdersManagement.setText("  ");
+		
+		mainWindowMenu.add(Help);
+		Help.setText("");
+		
+		Help.add(HelpAbout);
+		HelpAbout.addActionListener(new HelpAboutActionListener());
+		HelpAbout.setText("");
+		
+		getContentPane().add(mainWindowStatusPanel, BorderLayout.SOUTH);
+		mainWindowStatusPanel.setLayout(new FormLayout(
+			new ColumnSpec[] {
+				ColumnSpec.decode("149dlu"),
+				ColumnSpec.decode("72px"),
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC,
+				FormFactory.DEFAULT_COLSPEC},
+			new RowSpec[] {
+				FormFactory.RELATED_GAP_ROWSPEC,
+				RowSpec.decode("16px")}));
+		mainWindowStatusPanel.setSize(666, 25);
+		mainWindowStatusPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
+		mainWindowStatusPanel.setMinimumSize(new Dimension(666, 20));
+		
+		mainWindowStatusPanelLoggedUserLabel.setText(":");
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLabel, new CellConstraints("1, 1, 1, 2, fill, fill"));
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogin, new CellConstraints(2, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogin.addActionListener(new MainWindowStatusPanelLoggedUserLoginActionListener());
+		mainWindowStatusPanelLoggedUserLogin.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(4, 1, 1, 2, CellConstraints.CENTER, CellConstraints.DEFAULT));
+		mainWindowStatusPanelLoggedUserSettings.addActionListener(new MainWindowStatusPanelLoggedUserSettingsActionListener());
+		mainWindowStatusPanelLoggedUserSettings.setMargin(new Insets(2, 14, 2, 14));
+		mainWindowStatusPanelLoggedUserSettings.setText("");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel, new CellConstraints(3, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelSeparatorLabel2, new CellConstraints(5, 1, 1, 2));
+		mainWindowStatusPanelSeparatorLabel2.setText("   ");
+		
+		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserLogout, new CellConstraints(6, 1, 1, 2));
+		mainWindowStatusPanelLoggedUserLogout.addActionListener(new MainWindowStatusPanelLoggedUserLogoutActionListener());
+		mainWindowStatusPanelLoggedUserLogout.setText("");
+		mainWindowStatusPanelSetEnabled(false);
+	}
+	
+	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
+		
+		Component[] comps = mainWindowStatusPanel.getComponents();
+		
+		for (int i = 0; i < comps.length; i++) {
+		
+			comps[i].setEnabled(enable);	
+		}
+		
+		mainWindowStatusPanel.setEnabled(enable);
+	}
+	
+	private class ThisWindowListener extends WindowAdapter {
+		public void windowClosing(WindowEvent e) {
+			this_windowClosing(e);
+		}
+	}
+	private class FileExitActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileExit_actionPerformed(e);
+		}
+	}
+	private class FileConnectToDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileConnectToDb_actionPerformed(e);
+		}
+	}
+	private class FileDisconnectFromDbActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			fileDisconnectFromDb_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogin_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserSettingsActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserSettings_actionPerformed(e);
+		}
+	}
+	private class MainWindowStatusPanelLoggedUserLogoutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			mainWindowStatusPanelLoggedUserLogout_actionPerformed(e);
+		}
+	}
+	private class HelpAboutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			helpAbout_actionPerformed(e);
+		}
+	}
+	private class OperationsProductsManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsProductsManagement_actionPerformed(e);
+		}
+	}
+	private class OperationsNewOrderActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsNewOrder_actionPerformed(e);
+		}
+	}
+	private class OperationsOrdersManagementActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			operationsOrdersManagement_actionPerformed(e);
+		}
+	}
+
+	protected void this_windowClosing(WindowEvent e) {
+		
+		//JOptionPane.showMessageDialog(null, "aa", "aa", JOptionPane.INFORMATION_MESSAGE);
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				databaseConnectWindow.dbPortal.finalize();
+			}
+		}
+		this.dispose();
+		//System.exit(0);
+	}
+	
+	protected void fileExit_actionPerformed(ActionEvent e) {
+
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void fileConnectToDb_actionPerformed(ActionEvent e) {
+		
+		databaseConnectWindow dcw = new databaseConnectWindow();
+		dcw.setVisible(true);
+		dcw.addWindowListener(databaseConnectWindowClosing);
+	}
+	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
+		
+        public void windowClosing(WindowEvent e) {
+            
+        	e.getWindow().dispose(); 
+        	
+        	if (databaseConnectWindow.dbPortal != null) {
+    			
+    			if (databaseConnectWindow.dbPortal.isConnected()) {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(true);
+    				mainWindowPointer.FileConnectToDb.setEnabled(false);
+    				mainWindowPointer.FileDisconnectFromDb.setEnabled(true);
+    			}
+    			else {
+    				
+    				mainWindowPointer.mainWindowStatusPanelSetEnabled(false);
+    			}
+    		}            
+        }
+    };
+    
+    ////////////////////////////////////////////////////////////////////////
+    
+	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			databaseConnectWindow.dbPortal.finalize();
+			
+			this.FileConnectToDb.setEnabled(true);
+			this.FileDisconnectFromDb.setEnabled(false);			
+			this.Operations.setEnabled(false);
+			this.mainWindowStatusPanelSetEnabled(false);	
+			this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			operatorUserLoginWindow.loggedUserId = -1;
+		}
+	}
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
+		
+		operatorUserLoginWindow oul = new operatorUserLoginWindow();
+		oul.setVisible(true);
+		oul.addWindowListener(operatorUserLoginWindowClosing);
+	}
+	private static WindowListener operatorUserLoginWindowClosing = new WindowAdapter() {
+
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.Operations.setEnabled(true);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserLoginWindow.loggedUserNames);
+			}
+			else {
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+		
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
+		
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		operatorUserSettingsWindow ousw = new operatorUserSettingsWindow();
+		ousw.setVisible(true);
+		ousw.addWindowListener(operatorUserSettingsWindowClosing);
+	}
+	
+	private static WindowListener operatorUserSettingsWindowClosing = new WindowAdapter() {
+		
+		public void windowClosing(WindowEvent e) {
+			if (operatorUserLoginWindow.loggedUserId != -1) {
+				
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": " + operatorUserSettingsWindow.operatorFirstNameLastNameCombination);
+			}
+			else { //if operator was deleted
+				
+				mainWindowPointer.Operations.setEnabled(false);
+				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+			}
+		}
+	};
+	
+	////////////////////////////////////////////////////////////////////////
+	
+	protected void mainWindowStatusPanelLoggedUserLogout_actionPerformed(ActionEvent e) {
+		
+		this.Operations.setEnabled(false);
+		this.mainWindowStatusPanelLoggedUserLabel.setText(": ");
+		operatorUserLoginWindow.loggedUserId = -1;
+	}
+	
+	protected void helpAbout_actionPerformed(ActionEvent e) {
+		
+		JOptionPane.showMessageDialog(this, "eShop ver.-1.00\n(C) 2013   &  ", "", JOptionPane.INFORMATION_MESSAGE);
+	}
+	
+	protected void operationsProductsManagement_actionPerformed(ActionEvent e) {
+		//TODO...		
+	}
+	protected void operationsNewOrder_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	protected void operationsOrdersManagement_actionPerformed(ActionEvent e) {
+		//TODO...
+	}
+	
+	
+	
+	
+}

programming_language: Java
filename: b0eb4bb1b65d001211398853d386ea7d
change_type: ModificationType.ADD
diff: @@ -0,0 +1,248 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JButton;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+
+import java.sql.ResultSet;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserSettingsWindow extends JFrame {
+	private static final long serialVersionUID = 3004L;
+
+	private final JLabel usernameLabel = new JLabel();
+	private final JLabel passwordLabel = new JLabel();
+	private final JLabel passwordAgainLabel = new JLabel();
+	private final JLabel nameLabel = new JLabel();
+	private final JLabel lastNameLabel = new JLabel();
+	private final JButton updateButton = new JButton();
+	private final JButton deleteOperator = new JButton();
+	private final JTextField firstNameTextField = new JTextField();
+	private final JTextField lastNameTextField = new JTextField();
+	private final JPasswordField passwordPasswordField = new JPasswordField();
+	private final JPasswordField passwordAgainPasswordField = new JPasswordField();	
+	
+	private String currentOperatorPassword = "";
+	public static String operatorFirstNameLastNameCombination = "";	
+	
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserSettingsWindow() {
+		super();
+		setBounds(100, 100, 314, 255);
+		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setResizable(false);
+		setAlwaysOnTop(true);
+		setTitle("  ");
+		setName("operatorUserSettings");
+		
+		getContentPane().add(usernameLabel);
+		usernameLabel.setText(":");
+		usernameLabel.setBounds(10, 0, 278, 16);
+		
+		getContentPane().add(passwordLabel);
+		passwordLabel.setText(":");
+		passwordLabel.setBounds(10, 76, 97, 16);
+		
+		getContentPane().add(passwordAgainLabel);
+		passwordAgainLabel.setText(" :");
+		passwordAgainLabel.setBounds(10, 95, 97, 16);
+		
+		getContentPane().add(nameLabel);
+		nameLabel.setText(":");
+		nameLabel.setBounds(10, 32, 97, 16);
+		
+		getContentPane().add(lastNameLabel);
+		lastNameLabel.setText(":");
+		lastNameLabel.setBounds(10, 54, 97, 16);
+		
+		getContentPane().add(updateButton);
+		updateButton.addActionListener(new UpdateButtonActionListener());
+		updateButton.setText("");
+		updateButton.setBounds(90, 130, 137, 26);
+		
+		getContentPane().add(firstNameTextField);
+		firstNameTextField.setBounds(113, 30, 175, 20);
+		
+		getContentPane().add(lastNameTextField);
+		lastNameTextField.setBounds(113, 52, 175, 20);
+		
+		getContentPane().add(passwordPasswordField);
+		passwordPasswordField.setBounds(113, 74, 175, 20);
+		
+		getContentPane().add(passwordAgainPasswordField);
+		passwordAgainPasswordField.setBounds(113, 97, 175, 20);
+		
+		getCurrentUserData();
+		
+		getContentPane().add(deleteOperator);
+		deleteOperator.addActionListener(new DeleteOperatorActionListener());
+		deleteOperator.setText(" ");
+		deleteOperator.setBounds(90, 189, 137, 26);
+	}
+	
+	private void getCurrentUserData() {
+		
+		if (databaseConnectWindow.dbPortal == null) {
+			return;
+		}
+		if (databaseConnectWindow.dbPortal.isConnected() == false) {
+			return;
+		}
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_username, operator_password, " + 
+				"operator_first_name, operator_last_name FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId);
+		
+		if ((rs == null) || (databaseConnectWindow.dbPortal.getLastError() != null)) {
+			return;
+		}
+		
+		try {
+			
+			usernameLabel.setText(": " + rs.getString(1));
+			currentOperatorPassword = rs.getString(2);
+			firstNameTextField.setText(rs.getString(3));
+			lastNameTextField.setText(rs.getString(4));
+		}
+		catch (Exception ex) {			
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+	}
+	
+	private class UpdateButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			updateButton_actionPerformed(e);
+		}
+	}
+	private class DeleteOperatorActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			deleteOperator_actionPerformed(e);
+		}
+	}
+	protected void updateButton_actionPerformed(ActionEvent e) {
+		
+		char[] pass = passwordPasswordField.getPassword();
+		String password = "";
+		
+		for (int i = 0; i < pass.length; i++) {
+			
+			password += pass[i];
+		}
+		
+		char[] pass2 = passwordAgainPasswordField.getPassword();
+		String password2 = "";
+		
+		for (int j = 0; j < pass2.length; j++) {
+			
+			password2 += pass2[j];
+		}
+		
+		if (password.compareTo(password2) != 0) {
+			
+			JOptionPane.showMessageDialog(this, "  !", "    ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		if (password.length() > 3) { //password update will be performed too
+			
+			try {
+				
+				password = Md5hashcalc.calculateMD5hash(password);
+				currentOperatorPassword = password;
+			}
+			catch (Exception ex) {
+				
+				JOptionPane.showMessageDialog(this, "       \n      !", "    ", JOptionPane.ERROR_MESSAGE);
+			}			
+		}
+		else {
+			if (password.length() > 0) {
+				
+				JOptionPane.showMessageDialog(this, "     4 !", "    ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		
+		if ((firstNameTextField.getText().length() <= 3) || (lastNameTextField.getText().length() <= 3)) {
+			
+			JOptionPane.showMessageDialog(this, "    !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		if (databaseConnectWindow.dbPortal.executeParameterizedNonQuery("UPDATE operators SET operator_password=? " +
+				"operator_first_name=? operator_last_name=? WHERE operator_id=?", currentOperatorPassword, 
+				firstNameTextField.getText(), lastNameTextField.getText(), new Integer(operatorUserLoginWindow.loggedUserId)) != 1) {
+		
+			JOptionPane.showMessageDialog(this, "    !" + databaseConnectWindow.dbPortal.getLastError(), "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}
+		
+		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();
+		operatorUserLoginWindow.loggedUserNames = operatorFirstNameLastNameCombination; //in case
+		
+		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
+	}
+	
+	protected void deleteOperator_actionPerformed(ActionEvent e) {
+		
+		//we can not delete not existing operator
+		if (operatorUserLoginWindow.loggedUserId == -1) {
+			return;
+		}
+		
+		if (JOptionPane.showConfirmDialog(this, "       \n" + 
+				"  ,    .\n\n\t?", "   ", 
+				JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+			
+			if (databaseConnectWindow.dbPortal.executeNonQuery("DELETE FROM operators WHERE operator_id=" + operatorUserLoginWindow.loggedUserId) != 1) {
+
+				JOptionPane.showMessageDialog(this, "  !", "   ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+			
+			operatorUserLoginWindow.loggedUserId = -1;
+			this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+		}
+		
+		return;
+	}
+
+}

programming_language: Java
filename: 4031c38ea55d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,565 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return int the number of affected things
+	 */
+	
+	public int executeParameterizedNonQuery(String query, Object[] parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		//TODO...
+		// boolean - ok
+		// String  - ok
+		// char    - 
+		// byte    -
+		// short   -
+		// int     -
+		// long    -
+		// double  -
+		// float   -
+		// Date    -
+		// null ???
+		
+		try {
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i, parameters[i]);
+				
+				/*if (parameters[i] instanceof Boolean) {
+					
+					sqlStatement.setBoolean(i, ((Boolean)parameters[i]).booleanValue());
+					continue;
+				}
+				if (parameters[i] instanceof String) {
+					
+					sqlStatement.setString(i, ((String)parameters[i].toString()));
+					continue;
+				}
+				if (parameters[i] instanceof Character) {
+					
+					sqlStatement.set
+				}*/
+			}
+			
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Executes parameterized query and returns ResultSet with data. For SELECT...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeParameterizedQuery(String query, Object[] parameters) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: 204f8283fe5c00121f22d5fb8a5d79d9
change_type: ModificationType.DELETE
diff: @@ -1,97 +0,0 @@
-import java.awt.EventQueue;
-import javax.swing.JButton;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPasswordField;
-import javax.swing.JTextField;
-
-import database_management.MySQLdbManager;
-import md5_calculator.Md5hashcalc;
-
-public class operatorUserSettingsWindow extends JFrame {
-
-	private final JLabel usernameLabel = new JLabel();
-	private final JLabel passwordLabel = new JLabel();
-	private final JLabel passwordAgainLabel = new JLabel();
-	private final JLabel nameLabel = new JLabel();
-	private final JLabel lastNameLabel = new JLabel();
-	private final JButton updateButton = new JButton();
-	private final JTextField textField = new JTextField();
-	private final JTextField textField_1 = new JTextField();
-	private final JPasswordField passwordField = new JPasswordField();
-	private final JPasswordField passwordField_1 = new JPasswordField();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public operatorUserSettingsWindow() {
-		super();
-		setBounds(100, 100, 314, 214);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//
-	}
-	private void jbInit() throws Exception {
-		getContentPane().setLayout(null);
-		setTitle("  ");
-		setName("operatorUserSettings");
-		
-		getContentPane().add(usernameLabel);
-		usernameLabel.setText(":");
-		usernameLabel.setBounds(10, 0, 97, 16);
-		
-		getContentPane().add(passwordLabel);
-		passwordLabel.setText(":");
-		passwordLabel.setBounds(10, 76, 97, 16);
-		
-		getContentPane().add(passwordAgainLabel);
-		passwordAgainLabel.setText(" :");
-		passwordAgainLabel.setBounds(10, 95, 97, 16);
-		
-		getContentPane().add(nameLabel);
-		nameLabel.setText(":");
-		nameLabel.setBounds(10, 32, 97, 16);
-		
-		getContentPane().add(lastNameLabel);
-		lastNameLabel.setText(":");
-		lastNameLabel.setBounds(10, 54, 97, 16);
-		
-		getContentPane().add(updateButton);
-		updateButton.setText("");
-		updateButton.setBounds(93, 140, 106, 26);
-		
-		getContentPane().add(textField);
-		textField.setBounds(113, 30, 175, 20);
-		
-		getContentPane().add(textField_1);
-		textField_1.setBounds(113, 52, 175, 20);
-		
-		getContentPane().add(passwordField);
-		passwordField.setBounds(113, 74, 175, 20);
-		
-		getContentPane().add(passwordField_1);
-		passwordField_1.setBounds(113, 97, 175, 20);
-	}
-
-}

programming_language: unknown
filename: 20b5d438a45d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,328 @@
+import java.awt.EventQueue;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.JButton;
+import javax.swing.WindowConstants;
+import javax.swing.border.TitledBorder;
+
+import java.sql.ResultSet;
+
+import database_management.MySQLdbManager;
+import md5_calculator.Md5hashcalc;
+
+public class operatorUserLoginWindow extends JFrame {
+
+	private final JPanel groupLoginPanel = new JPanel();
+	private final JPanel groupCreateNewUserPanel = new JPanel();
+	private final JLabel loginUsernameLabel = new JLabel();
+	private final JLabel loginPasswordLabel = new JLabel();
+	private final JButton loginButton = new JButton();
+	private final JTextField loginUsernameTextField = new JTextField();
+	private final JPasswordField loginPasswordPasswordField = new JPasswordField();
+	private final JLabel newUsernameLabel = new JLabel();
+	private final JLabel newPasswordLabel = new JLabel();
+	private final JLabel newUserFirstNameLabel = new JLabel();
+	private final JLabel newUserLastNameLabel = new JLabel();
+	private final JButton createNewOperatorButton = new JButton();
+	private final JTextField newUsernameTextField = new JTextField();
+	private final JTextField newFirstNameTextField = new JTextField();
+	private final JPasswordField newPasswordPasswordField = new JPasswordField();
+	private final JTextField newLastNameTextField = new JTextField();
+	
+	public static int loggedUserId = -1;
+	public static String loggedUserNames = "";
+	
+	private final JLabel newPasswordAgainLabel = new JLabel();
+	private final JPasswordField newPasswordPasswordAgainField = new JPasswordField();
+	/**
+	 * Launch the application
+	 * @param args
+	 */
+	public static void main(String args[]) {
+		EventQueue.invokeLater(new Runnable() {
+			public void run() {
+				try {
+					operatorUserLoginWindow frame = new operatorUserLoginWindow();
+					frame.setVisible(true);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Create the frame
+	 */
+	public operatorUserLoginWindow() {
+		super();
+		setBounds(100, 100, 518, 242);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+		try {
+			jbInit();
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		//
+	}
+	private void jbInit() throws Exception {
+		getContentPane().setLayout(null);
+		setTitle("  ");
+		setName("operatorLoginWindow");
+		setResizable(false);
+		setAlwaysOnTop(true);
+		
+		getContentPane().add(groupLoginPanel);
+		groupLoginPanel.setLayout(null);
+		groupLoginPanel.setBorder(new TitledBorder(null, ":", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupLoginPanel.setBounds(10, 10, 243, 133);
+		
+		groupLoginPanel.add(loginUsernameLabel);
+		loginUsernameLabel.setText(":");
+		loginUsernameLabel.setBounds(10, 31, 80, 16);
+		
+		groupLoginPanel.add(loginPasswordLabel);
+		loginPasswordLabel.setText(":");
+		loginPasswordLabel.setBounds(10, 53, 80, 16);
+		
+		groupLoginPanel.add(loginButton);
+		loginButton.addActionListener(new LoginButtonActionListener());
+		loginButton.setText("");
+		loginButton.setBounds(127, 93, 106, 26);
+		
+		groupLoginPanel.add(loginUsernameTextField);
+		loginUsernameTextField.setBounds(96, 29, 137, 20);
+		
+		groupLoginPanel.add(loginPasswordPasswordField);
+		loginPasswordPasswordField.setBounds(96, 51, 137, 20);
+		
+		getContentPane().add(groupCreateNewUserPanel);
+		groupCreateNewUserPanel.setLayout(null);
+		groupCreateNewUserPanel.setBorder(new TitledBorder(null, " :", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+		groupCreateNewUserPanel.setBounds(259, 10, 243, 194);
+		
+		groupCreateNewUserPanel.add(newUsernameLabel);
+		newUsernameLabel.setText(" :");
+		newUsernameLabel.setBounds(10, 32, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordLabel);
+		newPasswordLabel.setText(":");
+		newPasswordLabel.setBounds(10, 54, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserFirstNameLabel);
+		newUserFirstNameLabel.setText(":");
+		newUserFirstNameLabel.setBounds(10, 98, 95, 16);
+		
+		groupCreateNewUserPanel.add(newUserLastNameLabel);
+		newUserLastNameLabel.setText(":");
+		newUserLastNameLabel.setBounds(10, 120, 95, 16);
+		
+		groupCreateNewUserPanel.add(createNewOperatorButton);
+		createNewOperatorButton.addActionListener(new CreateNewOperatorButtonActionListener());
+		createNewOperatorButton.setText("");
+		createNewOperatorButton.setBounds(127, 158, 106, 26);
+		
+		groupCreateNewUserPanel.add(newUsernameTextField);
+		newUsernameTextField.setBounds(111, 30, 122, 20);
+		
+		groupCreateNewUserPanel.add(newFirstNameTextField);
+		newFirstNameTextField.setBounds(111, 96, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordField);
+		newPasswordPasswordField.setBounds(111, 52, 122, 20);
+		
+		groupCreateNewUserPanel.add(newLastNameTextField);
+		newLastNameTextField.setBounds(111, 118, 122, 20);
+		
+		groupCreateNewUserPanel.add(newPasswordAgainLabel);
+		newPasswordAgainLabel.setText(" :");
+		newPasswordAgainLabel.setBounds(10, 76, 95, 16);
+		
+		groupCreateNewUserPanel.add(newPasswordPasswordAgainField);
+		newPasswordPasswordAgainField.setBounds(111, 75, 122, 20);
+	}
+	private class LoginButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			loginButton_actionPerformed(e);
+		}
+	}
+	private class CreateNewOperatorButtonActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			createNewOperatorButton_actionPerformed(e);
+		}
+	}
+	
+	protected void loginButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				String password = "";
+				
+				char[] pass = loginPasswordPasswordField.getPassword();
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				//FIXME prone to sql injection
+				
+				ResultSet rs = null;
+				
+				try {				
+					
+					rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_id, operator_first_name, operator_last_name FROM operators WHERE" + 
+						" operator_username='" + loginUsernameTextField.getText() + "' AND operator_password='" +
+						Md5hashcalc.calculateMD5hash(password) + "'");
+				}
+				catch (Exception ex) {
+					System.exit(-1);
+				}
+				
+				if (rs != null) {
+					
+					try {
+						
+						loggedUserId = rs.getInt(1);
+						loggedUserNames = rs.getString(2) + " " + rs.getString(3);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", "  ", 
+								JOptionPane.ERROR_MESSAGE);
+						return;
+					}
+					
+					this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
+				}
+				else {
+					JOptionPane.showMessageDialog(this, "   !", "  ", 
+							JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+				return;
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			return;
+		}		
+	}
+	
+	protected void createNewOperatorButton_actionPerformed(ActionEvent e) {
+		
+		if (databaseConnectWindow.dbPortal != null) {
+			
+			if (databaseConnectWindow.dbPortal.isConnected()) {
+				
+				char[] pass = newPasswordPasswordField.getPassword();
+				String password = "";
+				String encryptedPassword = "";
+				for (int i = 0; i < pass.length; i++) {
+					
+					password += pass[i];
+				}
+				
+				char[] pass2 = newPasswordPasswordAgainField.getPassword();
+				
+				if (pass.length == pass2.length) {
+				
+						for (int i = 0; i < pass.length; i++) {
+							
+							if (pass[i] != pass2[i]) {
+								
+								JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+								return;
+							}
+						}
+				}
+				else {
+				
+					JOptionPane.showMessageDialog(this, "  !", "", JOptionPane.ERROR_MESSAGE);
+					return;
+				}
+								
+				if ((newUsernameTextField.getText().length() > 3) && (password.length() > 3) && 
+						(newFirstNameTextField.getText().length() > 3) && (newLastNameTextField.getText().length() > 3)) {
+					
+					try {
+						
+						encryptedPassword = Md5hashcalc.calculateMD5hash(password);
+					}
+					catch (Exception ex) {
+						
+						JOptionPane.showMessageDialog(this, "   !", " ", JOptionPane.ERROR_MESSAGE);
+						System.exit(-1);
+					}
+					
+					//FIXME prone to sql injection
+					ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT COUNT(*) FROM operators WHERE operator_username='" +
+							newUsernameTextField.getText() + "'");
+					
+					int usersCount = 0;
+					try {
+						
+						usersCount = rs.getInt(1);
+					}
+					catch (Exception ex) {						
+					}					
+					
+					if ((databaseConnectWindow.dbPortal.getLastError() == null) && (usersCount == 0)) {						
+						
+						//no such existing username so now we create it
+						//FIXME prone to sql injection
+						if (databaseConnectWindow.dbPortal.executeNonQuery("INSERT INTO operators(operator_username, operator_password, " +
+								"operator_first_name, operator_last_name) VALUES('" + newUsernameTextField.getText() + "', '" +
+								encryptedPassword + "', '" + newFirstNameTextField.getText() + "', '" + newLastNameTextField.getText() + "')") != 1) {
+							
+							JOptionPane.showMessageDialog(this, "     !", "", JOptionPane.ERROR_MESSAGE);
+						}
+						else { //everything ok so login now
+							
+							loginUsernameTextField.setText(newUsernameTextField.getText());
+							loginPasswordPasswordField.setText(password);
+							loginButton_actionPerformed(null);
+						}						
+					}
+					else {
+						
+						if (databaseConnectWindow.dbPortal.getLastError() != null) {
+							
+							JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);							
+						}
+						else {
+							
+							JOptionPane.showMessageDialog(this, "      .", "   ", JOptionPane.ERROR_MESSAGE);							
+						}
+					}					
+				}
+				else {
+					
+					JOptionPane.showMessageDialog(this, "    - !", " ", JOptionPane.ERROR_MESSAGE);
+				}
+			}
+			else {
+				
+				JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+			}
+		}
+		else {
+			
+			JOptionPane.showMessageDialog(this, "   MySQL !", "  ", JOptionPane.ERROR_MESSAGE);
+		}		
+	}
+
+}

programming_language: Java
filename: e00edf7aa25d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,525 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+import java.lang.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return int the number of affected things
+	 */
+	
+	public int executeParameterizedQuery(String query, Object[] parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		//TODO...
+		// boolean - ok
+		// String  - ok
+		// char    - 
+		// byte    -
+		// short   -
+		// int     -
+		// long    -
+		// double  -
+		// float   -
+		// Date    -
+		// null ???
+		
+		try {
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i, parameters[i]);
+				
+				/*if (parameters[i] instanceof Boolean) {
+					
+					sqlStatement.setBoolean(i, ((Boolean)parameters[i]).booleanValue());
+					continue;
+				}
+				if (parameters[i] instanceof String) {
+					
+					sqlStatement.setString(i, ((String)parameters[i].toString()));
+					continue;
+				}
+				if (parameters[i] instanceof Character) {
+					
+					sqlStatement.set
+				}*/
+			}
+			
+			sqlStatement.
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: 502d6e21a25d00121890bdcc27f78f62
change_type: ModificationType.ADD
diff: @@ -0,0 +1,514 @@
+/**
+ * <p> Title: MySQLdbManager </p>
+ * <p> Description: MySQL java database manager wrapper </p>
+ * @version 1.00
+ * @author (C) 09.01.2013 - 13.01.2013 zhgzhg
+ */
+
+package database_management;
+
+import java.sql.*;
+import java.lang.*;
+
+public class MySQLdbManager {
+	
+	private final String JDBCDRIVER = "com.mysql.jdbc.Driver";
+	private int mySqlServerPort = 3306;
+	private String mySqlServerAddress = null;	
+	private String mySqlDatabaseName = null;
+	private String mySqlUsername = null;
+	private String mySqlPassword = null;
+	private boolean useUTF8Encoding = true;
+	private Connection dbConnection = null;
+		
+	private String lastError = null;
+	
+	/**
+	 * Empty Constructor 
+	 */
+	
+	public MySQLdbManager() {
+		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server ip address or hostname
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlServerPort int MySQL server running port between 1 and 65535. The default one is 3306.
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName, int mySqlServerPort, String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.setMySqlServerPort(mySqlServerPort);
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;		
+	}
+	
+	/**
+	 * Constructor
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 * @param mySqlDatabaseName String MySQL database name (leave empty "" if you want to assign with no one)
+	 * @param mySqlUsername String MySQL database username
+	 * @param mySqlPassword String MySQL database username password. The default one is empty string.
+	 */
+	
+	public MySQLdbManager(String mySqlServerAddress, String mySqlDatabaseName,  String mySqlUsername, String mySqlPassword) {
+		this.mySqlServerAddress = mySqlServerAddress;
+		this.mySqlDatabaseName = mySqlDatabaseName;
+		this.mySqlUsername = mySqlUsername;
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
+	 */
+	
+	public void setMySqlServerAddress(String mySqlServerAddress) {
+		this.mySqlServerAddress = mySqlServerAddress;
+	}
+	
+	/**
+	 * Returns MySQL server address.
+	 * @return String
+	 */
+	
+	public String getMySqlServerAddress() {
+		return mySqlServerAddress;
+	}
+	
+	/**
+	 * Sets MySQL database [name] to use. Leave empty "" if you want to assign with no one.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlDatabaseName String
+	 */
+	
+	public void setMySqlActiveDatabase(String mySqlDatabaseName) {
+		this.mySqlDatabaseName = mySqlDatabaseName;
+	}
+	
+	/**
+	 * Returns current active MySQL database name.
+	 * @return String
+	 */
+	
+	public String getMySqlActiveDatabase() {
+		return mySqlDatabaseName;
+	}
+	
+	/**
+	 * Sets MySQL server port. Must be between [1 and 65535].
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlServerPort int
+	 */
+	
+	public void setMySqlServerPort(int mySqlServerPort) {
+		
+		if (mySqlServerPort <= 0 || mySqlServerPort > 65535)
+		{ lastError = "Invalid mysql server port range! Must be between [1 and 65535]."; return; }
+		
+		this.mySqlServerPort = mySqlServerPort;
+	}
+	
+	/**
+	 * Returns MySQL server port.
+	 * @return int ([between 1 and 65535])
+	 */
+	
+	public int getMySqlServerPort() {
+		
+		return this.mySqlServerPort;
+	}
+	
+	/**
+	 * Sets MySQL database username.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlUsername String
+	 */
+	
+	public void setMySqlUsername(String mySqlUsername) {
+		
+		this.mySqlUsername = mySqlUsername;
+	}
+	
+	/**
+	 * Returns MySQL database username.
+	 * @return String
+	 */
+	
+	public String getMySqlUsername() {
+		
+		return mySqlUsername;
+	}
+	
+	/**
+	 * Sets MySQL database username password.
+	 * You need to call disconnect() and connect() after that.
+	 * @param mySqlPassword String
+	 */
+	
+	public void setMySqlPassword(String mySqlPassword) {
+		
+		this.mySqlPassword = mySqlPassword;
+	}
+	
+	/**
+	 * Returns current MySQL database username password.
+	 * @return String
+	 */
+	
+	public String getMySqlPassword() {
+		
+		return this.mySqlPassword;
+	}
+	
+	/**
+	 * Sets database input/output UTF8 data encoding on or off.
+	 * You need to call disconnect() and connect() after that.
+	 * @param on boolean
+	 */
+	
+	public void setUtf8EncodingOn(boolean on) {
+		
+		this.useUTF8Encoding = on;
+	}
+	
+	/**
+	 * Returns database input/output UTF8 is on or off.
+	 * @return boolean
+	 */
+	
+	public boolean isUtf8EncodingUsed() {
+		
+		return this.useUTF8Encoding;
+	}
+	
+	/**
+	 * Checks for active database connection and returns true if it is presented.
+	 * @return boolean
+	 */
+	
+	public boolean isConnected() {
+		
+		boolean result = true;
+		
+		lastError = null;
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				result = (!dbConnection.isClosed());
+			}			
+			catch (SQLException ex) {
+				
+				lastError = ex.getMessage(); 
+				result = false;
+			}
+		}
+		else {			
+			lastError = "Uninitialized database connection!";
+			result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Tries to connect to MySQL database and returns true in case of success.
+	 * @return boolean
+	 */
+	
+	public boolean connect() {
+		
+		boolean result = true;
+		
+		if (mySqlServerAddress == null || mySqlDatabaseName == null || mySqlUsername == null) { 
+			lastError = "Uninitialized server address, database name or database username!"; return false; }
+		else {
+			lastError = null; //new connect always clears the last error
+		}			
+		
+		if (dbConnection != null) {
+			
+			try {
+				
+				if (!dbConnection.isClosed()) {
+					dbConnection.close();
+				}
+			}
+			catch (SQLException ex) {
+				lastError = ex.getMessage();
+			}
+		}	
+		
+		try {
+			
+			Class.forName(JDBCDRIVER).newInstance();
+			dbConnection = DriverManager.getConnection("jdbc:mysql://" + mySqlServerAddress + ":" + mySqlServerPort + "/" + mySqlDatabaseName + 
+					"?user=" + mySqlUsername + (mySqlPassword != null ? "&password=" + mySqlPassword : "") + 
+					(useUTF8Encoding == true ? "&useUnicode=TRUE&characterEncoding=UTF-8" : ""));
+		}
+		catch (Exception ex) {
+			
+			if (lastError == null) { 
+				lastError = ex.getMessage(); 
+			}
+			else { 
+				lastError += ex.getMessage(); 
+			}
+			
+		    result = false;
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Close the active database connection if presented.
+	 */
+	
+	public void disconnect() {
+		
+			if (dbConnection != null) {
+			
+				try {
+					
+					if (!dbConnection.isClosed()) {
+						
+						dbConnection.close();
+					}
+				}
+				catch (SQLException ex) {
+					
+					lastError = ex.getMessage();
+				}
+				
+				dbConnection = null;
+		}		
+	}
+	
+	/**
+	 * Executes query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return int the number of affected things
+	 */
+	
+	public int executeNonQuery(String query) {
+		
+		Statement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer !!!! ...)
+	 * @return int the number of affected things
+	 */
+	
+	Integer a
+	
+	public int executeParameterizedQuery(String query, Object[] parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		//TODO...
+		// boolean
+		// String
+		// char[]
+		// byte
+		// short
+		// int
+		// long
+		// double
+		// float
+		// Date
+		// null ???
+		
+		try {
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				if (parameters[i] instanceof boolean) {
+					sqlStatement.set
+				}
+			}
+			
+			sqlStatement.
+			sqlStatement.execute(query);
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
+	/**
+	 * Executes query and returns ResultSet with data. For SELECT...
+	 * Warning! Prone to SQL injection!!!
+	 * @param query String
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeQuery(String query) { //executes query and returns ResultSet 
+		
+		Statement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.createStatement();
+			result = sqlStatement.executeQuery(query);
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
+	/**
+	 * Returns the text message exception error of the last called method. Returns null if no error.
+	 * @return String
+	 */
+	
+	public String getLastError() {
+		
+		return lastError;
+	}
+	
+	/**
+	 * Finalization method if you don't want to use specific MySQLdbManager instance object anymore.
+	 */
+	
+	public void finalize() {
+		
+		disconnect();
+		mySqlServerAddress = null;	
+		mySqlDatabaseName = null;
+		mySqlUsername = null;
+		mySqlPassword = null;
+		lastError = null;
+	}
+}

programming_language: Java
filename: 303f33aafe5c00121f22d5fb8a5d79d9
change_type: ModificationType.DELETE
diff: @@ -1,97 +0,0 @@
-import java.awt.EventQueue;
-import javax.swing.JButton;
-
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPasswordField;
-import javax.swing.JTextField;
-
-import database_management.MySQLdbManager;
-import md5_calculator.Md5hashcalc;
-
-public class operatorUserSettingsWindow extends JFrame {
-
-	private final JLabel usernameLabel = new JLabel();
-	private final JLabel passwordLabel = new JLabel();
-	private final JLabel passwordAgainLabel = new JLabel();
-	private final JLabel nameLabel = new JLabel();
-	private final JLabel lastNameLabel = new JLabel();
-	private final JButton updateButton = new JButton();
-	private final JTextField firstNameTextField = new JTextField();
-	private final JTextField lastNameTextField = new JTextField();
-	private final JPasswordField passwordPasswordField = new JPasswordField();
-	private final JPasswordField passwordAgainPasswordField = new JPasswordField();
-	/**
-	 * Launch the application
-	 * @param args
-	 */
-	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				try {
-					operatorUserSettingsWindow frame = new operatorUserSettingsWindow();
-					frame.setVisible(true);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Create the frame
-	 */
-	public operatorUserSettingsWindow() {
-		super();
-		setBounds(100, 100, 314, 214);
-		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		try {
-			jbInit();
-		} catch (Throwable e) {
-			e.printStackTrace();
-		}
-		//
-	}
-	private void jbInit() throws Exception {
-		getContentPane().setLayout(null);
-		setTitle("  ");
-		setName("operatorUserSettings");
-		
-		getContentPane().add(usernameLabel);
-		usernameLabel.setText(":");
-		usernameLabel.setBounds(10, 0, 97, 16);
-		
-		getContentPane().add(passwordLabel);
-		passwordLabel.setText(":");
-		passwordLabel.setBounds(10, 76, 97, 16);
-		
-		getContentPane().add(passwordAgainLabel);
-		passwordAgainLabel.setText(" :");
-		passwordAgainLabel.setBounds(10, 95, 97, 16);
-		
-		getContentPane().add(nameLabel);
-		nameLabel.setText(":");
-		nameLabel.setBounds(10, 32, 97, 16);
-		
-		getContentPane().add(lastNameLabel);
-		lastNameLabel.setText(":");
-		lastNameLabel.setBounds(10, 54, 97, 16);
-		
-		getContentPane().add(updateButton);
-		updateButton.setText("");
-		updateButton.setBounds(93, 140, 106, 26);
-		
-		getContentPane().add(firstNameTextField);
-		firstNameTextField.setBounds(113, 30, 175, 20);
-		
-		getContentPane().add(lastNameTextField);
-		lastNameTextField.setBounds(113, 52, 175, 20);
-		
-		getContentPane().add(passwordPasswordField);
-		passwordPasswordField.setBounds(113, 74, 175, 20);
-		
-		getContentPane().add(passwordAgainPasswordField);
-		passwordAgainPasswordField.setBounds(113, 97, 175, 20);
-	}
-
-}

programming_language: unknown
filename: net.sourceforge.eclipseccase.14
change_type: ModificationType.DELETE
diff: @@ -1,3 +0,0 @@
-#safe table
-#Sun Jan 13 13:28:17 EET 2013
-statecache=statecache14

programming_language: unknown
filename: net.sourceforge.eclipseccase.16
change_type: ModificationType.ADD
diff: @@ -0,0 +1,3 @@
+#safe table
+#Sun Jan 13 21:27:29 EET 2013
+statecache=statecache16

programming_language: Batchfile
filename: org.eclipse.mylyn.monitor.usage.prefs
change_type: ModificationType.MODIFY
diff: @@ -1,9 +1,9 @@
-#Sun Jan 13 13:28:20 EET 2013
+#Sun Jan 13 21:27:31 EET 2013
 org.eclipse.mylyn.monitor.ui.enabled=true
 org.eclipse.mylyn.monitor.enable.submission=true
 eclipse.preferences.version=1
 org.eclipse.mylyn.monitor.submission.initially.enabled=true
 org.eclipse.mylyn.monitor.monitoring.started=true
-org.eclipse.mylyn.monitor.ui.events.observed=5789
+org.eclipse.mylyn.monitor.ui.events.observed=6747
 org.eclipse.mylyn.monitor.initially.enabled=true
 org.eclipse.mylyn.monitor.ui.upload.previousTransmit=1357825317619

programming_language: Scala
filename: launchConfigurationHistory.xml
change_type: ModificationType.MODIFY
diff: @@ -11,9 +11,9 @@
 <launchGroup id="org.eclipse.debug.ui.launchGroup.debug">
 <mruHistory>
 <launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;mainWindow.launch&quot;/&gt;&#13;&#10;"/>
-<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;operatorUserSettingsWindow.launch&quot;/&gt;&#13;&#10;"/>
 <launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;operatorUserLoginWindow.launch&quot;/&gt;&#13;&#10;"/>
 <launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;databaseConnectWindow.launch&quot;/&gt;&#13;&#10;"/>
+<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;operatorUserSettingsWindow.launch&quot;/&gt;&#13;&#10;"/>
 </mruHistory>
 <favorites/>
 </launchGroup>
@@ -24,9 +24,9 @@
 <launchGroup id="org.eclipse.debug.ui.launchGroup.run">
 <mruHistory>
 <launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;mainWindow.launch&quot;/&gt;&#13;&#10;"/>
-<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;operatorUserSettingsWindow.launch&quot;/&gt;&#13;&#10;"/>
 <launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;operatorUserLoginWindow.launch&quot;/&gt;&#13;&#10;"/>
 <launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;databaseConnectWindow.launch&quot;/&gt;&#13;&#10;"/>
+<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;operatorUserSettingsWindow.launch&quot;/&gt;&#13;&#10;"/>
 </mruHistory>
 <favorites/>
 </launchGroup>
@@ -37,9 +37,9 @@
 <launchGroup id="org.eclipse.debug.ui.launchGroup.profile">
 <mruHistory>
 <launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;mainWindow.launch&quot;/&gt;&#13;&#10;"/>
-<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;operatorUserSettingsWindow.launch&quot;/&gt;&#13;&#10;"/>
 <launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;operatorUserLoginWindow.launch&quot;/&gt;&#13;&#10;"/>
 <launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;databaseConnectWindow.launch&quot;/&gt;&#13;&#10;"/>
+<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;operatorUserSettingsWindow.launch&quot;/&gt;&#13;&#10;"/>
 </mruHistory>
 <favorites/>
 </launchGroup>

programming_language: HTML
filename: savedIndexNames.txt
change_type: ModificationType.MODIFY
diff: @@ -1,13 +1,13 @@
 INDEX VERSION 1.125+D:\Drugi\Docs\PU\3 kurs\2 trimestur\Kursov Proekt 2\eShop\.metadata\.plugins\org.eclipse.jdt.core
-1164253737.index
-2022660347.index
 4258022599.index
+2022660347.index
+1164253737.index
 295014608.index
 4112234698.index
 2189383343.index
 1574758937.index
 3057692050.index
 659401946.index
+492272455.index
 2880237455.index
 321982250.index
-492272455.index

programming_language: Batchfile
filename: QualifiedTypeNameHistory.xml
change_type: ModificationType.MODIFY
diff: @@ -21,4 +21,5 @@
 <fullyQualifiedTypeName name="operatorUserLoginWindow"/>
 <fullyQualifiedTypeName name="databaseConnectWindow"/>
 <fullyQualifiedTypeName name="database_management.MySQLdbManager"/>
+<fullyQualifiedTypeName name="java.lang.Boolean"/>
 </qualifiedTypeNameHistroy>

programming_language: Shell
filename: workbench.xml
change_type: ModificationType.MODIFY
diff: @@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<workbench progressCount="45" version="2.0">
+<workbench progressCount="22" version="2.0">
 <workbenchAdvisor/>
 <window height="738" maximized="true" width="1024" x="125" y="0">
 <fastViewData fastViewLocation="1024"/>
@@ -15,7 +15,7 @@
 <coolItem id="org.eclipse.debug.ui.launchActionSet" itemType="typeToolBarContribution" x="129" y="22"/>
 <coolItem id="org.eclipse.jdt.ui.JavaElementCreationActionSet" itemType="typeToolBarContribution" x="99" y="22"/>
 <coolItem id="org.eclipse.mylyn.java.actionSet.browsing" itemType="typeToolBarContribution" x="38" y="22"/>
-<coolItem id="org.eclipse.ui.edit.text.actionSet.presentation" itemType="typeToolBarContribution" x="84" y="22"/>
+<coolItem id="org.eclipse.ui.edit.text.actionSet.presentation" itemType="typeToolBarContribution" x="107" y="22"/>
 <coolItem id="org.eclipse.wst.xml.ui.design.DesignToolBar" itemType="typeToolBarContribution" x="-1" y="-1"/>
 <coolItem id="org.eclipse.search.searchActionSet" itemType="typeToolBarContribution" x="130" y="22"/>
 <coolItem id="org.jboss.tools.jst.web.ui.server.actionSet" itemType="typeToolBarContribution" x="-1" y="-1"/>
@@ -23,8 +23,8 @@
 <coolItem id="org.eclipse.ui.workbench.navigate" itemType="typeToolBarContribution" x="190" y="22"/>
 <coolItem id="group.editor" itemType="typeGroupMarker"/>
 <coolItem id="org.eclipse.jdt.ui.ClassFileEditor" itemType="typePlaceholder" x="-1" y="-1"/>
-<coolItem id="org.eclipse.jdt.ui.CompilationUnitEditor" itemType="typeToolBarContribution" x="-1" y="-1"/>
-<coolItem id="com.swtdesigner.editors.MultiPageEditor" itemType="typePlaceholder" x="61" y="22"/>
+<coolItem id="org.eclipse.jdt.ui.CompilationUnitEditor" itemType="typePlaceholder" x="-1" y="-1"/>
+<coolItem id="com.swtdesigner.editors.MultiPageEditor" itemType="typeToolBarContribution" x="61" y="22"/>
 <coolItem id="group.help" itemType="typeGroupMarker"/>
 <coolItem id="org.eclipse.ui.workbench.help" itemType="typeToolBarContribution" x="-1" y="-1"/>
 </coolbarLayout>
@@ -39,17 +39,15 @@
 </folder>
 </info>
 </editorArea>
-<editor activePart="true" focus="true" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="MySQLdbManager.java" partName="MySQLdbManager.java" path="D:/Drugi/Docs/PU/3 kurs/2 trimestur/Kursov Proekt 2/eShop/eShop/src/database_management/MySQLdbManager.java" title="MySQLdbManager.java" tooltip="eShop/src/database_management/MySQLdbManager.java" workbook="DefaultEditorWorkbook">
-<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/eShop/src/database_management/MySQLdbManager.java"/>
-<editorState selectionLength="0" selectionOffset="11076"/>
+<editor activePart="true" focus="true" id="com.swtdesigner.editors.MultiPageEditor" name="mainWindow.java" partName="mainWindow.java" path="D:/Drugi/Docs/PU/3 kurs/2 trimestur/Kursov Proekt 2/eShop/eShop/src/mainWindow.java" title="mainWindow.java" tooltip="eShop/src/mainWindow.java" workbook="DefaultEditorWorkbook">
+<input factoryID="org.eclipse.ui.part.FileEditorInputFactory" path="/eShop/src/mainWindow.java"/>
+<editorState selectionLength="0" selectionOffset="13570"/>
 </editor>
 </editors>
 <views>
 <view id="org.vssplugin.ui.logview" partName="VSS Refresh Log">
 <viewState/>
 </view>
-<view id="org.eclipse.jdt.ui.JavadocView" partName="Javadoc"/>
-<view id="org.eclipse.ui.views.TaskList" partName="Tasks"/>
 <view id="org.eclipse.jdt.ui.MembersView" partName="Members">
 <viewState hidefields="false" hidelocaltypes="false" hidenonpublic="false" hidestatic="false" org.eclipse.jdt.ui.browsing.memberstoeditor="1">
 <customFilters userDefinedPatternsEnabled="false">&#x0A;<xmlDefinedFilters>&#x0A;<child filterId="com.tssap.selena.dom.HideDesignRoot" isEnabled="true"/>
@@ -61,6 +59,8 @@
 </customFilters>
 </viewState>
 </view>
+<view id="org.eclipse.jdt.ui.JavadocView" partName="Javadoc"/>
+<view id="org.eclipse.ui.views.TaskList" partName="Tasks"/>
 <view id="org.eclipse.debug.ui.VariableView" partName="Variables">
 <viewState/>
 </view>
@@ -120,7 +120,6 @@
 </org.eclipse.mylyn.tasklist.ui.views.tasklist.sortIndex>
 </viewState>
 </view>
-<view id="org.eclipse.jdt.ui.SourceView" partName="Declaration"/>
 <view id="org.eclipse.jdt.ui.PackageExplorer" partName="Package Explorer">
 <viewState group_libraries="1" isWindowWorkingSet="false" layout="2" linkWithEditor="0" rootMode="1" workingSetName="">
 <customFilters userDefinedPatternsEnabled="false">
@@ -153,6 +152,7 @@
 </customFilters>
 </viewState>
 </view>
+<view id="org.eclipse.jdt.ui.SourceView" partName="Declaration"/>
 <view id="org.eclipse.jdt.ui.ProjectsView" partName="Projects">
 <viewState isWindowWorkingSet="false" org.eclipse.jdt.ui.browsing.projectstoeditor="1" workingSetName="">
 <customFilters userDefinedPatternsEnabled="false">&#x0A;<xmlDefinedFilters>&#x0A;<child filterId="org.eclipse.jdt.ui.ProjectsView.ContainedLibraryFilter" isEnabled="false"/>
@@ -174,11 +174,7 @@
 </view>
 <view id="org.eclipse.ui.views.ProblemView" partName="Problems">
 <viewState PRIMARY_SORT_FIELD="org.eclipse.ui.ide.severityAndDescriptionField" categoryGroup="org.eclipse.ui.ide.severity" markerContentGenerator="org.eclipse.ui.ide.problemsGenerator" partName="Problems">
-<expanded>
-<category IMemento.internal.id="Warnings"/>
-<category IMemento.internal.id="Errors"/>
-</expanded>
-<columnWidths org.eclipse.ui.ide.locationField="64" org.eclipse.ui.ide.markerType="94" org.eclipse.ui.ide.pathField="124" org.eclipse.ui.ide.resourceField="94" org.eclipse.ui.ide.severityAndDescriptionField="447"/>
+<columnWidths org.eclipse.ui.ide.locationField="64" org.eclipse.ui.ide.markerType="94" org.eclipse.ui.ide.pathField="124" org.eclipse.ui.ide.resourceField="94" org.eclipse.ui.ide.severityAndDescriptionField="644"/>
 <visible IMemento.internal.id="org.eclipse.ui.ide.severityAndDescriptionField"/>
 <visible IMemento.internal.id="org.eclipse.ui.ide.resourceField"/>
 <visible IMemento.internal.id="org.eclipse.ui.ide.pathField"/>
@@ -187,7 +183,7 @@
 </viewState>
 </view>
 </views>
-<perspectives activePart="org.eclipse.jdt.ui.CompilationUnitEditor" activePerspective="org.eclipse.jdt.ui.JavaPerspective">
+<perspectives activePart="com.swtdesigner.editors.MultiPageEditor" activePerspective="org.eclipse.jdt.ui.JavaPerspective">
 <perspective editorAreaTrimState="2" editorAreaVisible="1" fixed="0" version="0.016">
 <descriptor class="org.eclipse.jdt.internal.ui.JavaPerspectiveFactory" id="org.eclipse.jdt.ui.JavaPerspective" label="Java"/>
 <alwaysOnActionSet id="com.borland.dsib.client.actions.DSIBActions.actionset"/>
@@ -289,6 +285,10 @@
 <perspective_action id="org.jboss.tools.jst.web.ui.WebDevelopmentPerspective"/>
 <view id="org.eclipse.jdt.ui.PackageExplorer"/>
 <view id="org.eclipse.jdt.ui.TypeHierarchy"/>
+<view id="org.eclipse.ui.views.ProblemView"/>
+<view id="org.eclipse.jdt.ui.JavadocView"/>
+<view id="org.eclipse.jdt.ui.SourceView"/>
+<view id="org.eclipse.ui.console.ConsoleView"/>
 <fastViewBars>
 <fastViewBar fastViewLocation="16384" id="org.eclipse.ui.internal.ViewStack@1ed627d" orientation="512" selectedTabId="com.codegear.jbuilder.view.TagsView" style="0">
 <fastViews>
@@ -310,14 +310,6 @@
 <view id="org.eclipse.ui.views.ContentOutline" ratio="0.3"/>
 </fastViews>
 </fastViewBar>
-<fastViewBar fastViewLocation="1024" id="bottom" orientation="256" selectedTabId="org.eclipse.ui.views.ProblemView" style="0">
-<fastViews>
-<view id="org.eclipse.ui.views.ProblemView" ratio="0.3"/>
-<view id="org.eclipse.jdt.ui.JavadocView" ratio="0.3"/>
-<view id="org.eclipse.jdt.ui.SourceView" ratio="0.3"/>
-<view id="org.eclipse.ui.console.ConsoleView" ratio="0.2985782"/>
-</fastViews>
-</fastViewBar>
 <fastViewBar fastViewLocation="1024" id="org.eclipse.ui.internal.ViewStack@1065904" orientation="256" selectedTabId="org.vssplugin.ui.logview" style="0">
 <fastViews>
 <view id="org.vssplugin.ui.logview" ratio="0.3"/>
@@ -354,20 +346,25 @@
 <presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory"/>
 </folder>
 </info>
-<info part="org.eclipse.ui.editorss" ratio="0.11299001" ratioLeft="147" ratioRight="1154" relationship="2" relative="left"/>
+<info part="org.eclipse.ui.editorss" ratio="0.21521907" ratioLeft="280" ratioRight="1021" relationship="2" relative="left"/>
 <info folder="true" part="bottom" ratio="0.7487844" ratioLeft="462" ratioRight="155" relationship="4" relative="org.eclipse.ui.editorss">
-<folder appearance="2" expanded="0">
-<page content="org.eclipse.ui.views.ProblemView" label="LabelNotFound"/>
-<page content="org.eclipse.jdt.ui.JavadocView" label="LabelNotFound"/>
-<page content="org.eclipse.jdt.ui.SourceView" label="LabelNotFound"/>
-<page content="org.eclipse.ui.console.ConsoleView" label="LabelNotFound"/>
+<folder activePageID="org.eclipse.ui.views.ProblemView" appearance="2" expanded="2">
+<page content="org.eclipse.ui.views.ProblemView" label="Problems"/>
+<page content="org.eclipse.jdt.ui.JavadocView" label="Javadoc"/>
+<page content="org.eclipse.jdt.ui.SourceView" label="Declaration"/>
+<page content="org.eclipse.ui.console.ConsoleView" label="Console"/>
 <page content="org.eclipse.search.ui.views.SearchView" label="LabelNotFound"/>
 <page content="org.eclipse.ui.views.BookmarkView" label="LabelNotFound"/>
 <page content="org.eclipse.ui.views.ProgressView" label="LabelNotFound"/>
 <page content="com.codegear.sanctuary.client.ui.lm.views.SanctLicenseManagerView" label="LabelNotFound"/>
 <page content="com.togethersoft.selena.sapient.MetricView" label="LabelNotFound"/>
 <page content="com.togethersoft.selena.sapient.AuditView" label="LabelNotFound"/>
-<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory"/>
+<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">
+<part id="0"/>
+<part id="1"/>
+<part id="2"/>
+<part id="3"/>
+</presentation>
 </folder>
 </info>
 <info folder="true" part="org.eclipse.ui.internal.ViewStack@d52ea" ratio="0.5" ratioLeft="375" ratioRight="375" relationship="2" relative="bottom">
@@ -665,165 +662,104 @@
 <workingSets/>
 <navigationHistory>
 <editors>
-<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" path="/eShop/src/mainWindow.java"/>
-<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" path="/eShop/src/operatorUserLoginWindow.java"/>
-<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" path="/eShop/src/operatorUserLoginWindow.java"/>
-<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" path="/eShop/src/database_management/MySQLdbManager.java"/>
-<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" path="/eShop/src/database_management/MySQLdbManager.java"/>
-<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" path="/eShop/src/operatorUserLoginWindow.java"/>
-<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" path="/eShop/src/databaseConnectWindow.java"/>
 <editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" path="/eShop/src/database_management/MySQLdbManager.java"/>
+<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" path="/eShop/src/mainWindow.java"/>
 <editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" path="/eShop/src/databaseConnectWindow.java"/>
+<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" path="/eShop/src/operatorUserLoginWindow.java"/>
+<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" path="/eShop/src/operatorUserSettingsWindow.java"/>
 </editors>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="9165" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="9361" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="9291" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="9165" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="9345" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="9414" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="9391" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="9488" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="9431" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="9685" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="9808" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="9913" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="9685" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="9913" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="9685" y="0"/>
+<item historyLabel="MySQLdbManager.java" index="0">
+<position info="not_deleted" x="12869" y="0"/>
 </item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="10236" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="10308" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="1">
-<position info="not_deleted" x="10362" y="0"/>
-</item>
-<item historyLabel="mainWindow.java" index="0">
-<position info="not_deleted" x="11511" y="0"/>
-</item>
-<item historyLabel="operatorUserLoginWindow.java" index="2">
-<position info="not_deleted" x="7808" y="0"/>
+<item historyLabel="mainWindow.java" index="1">
+<position/>
 </item>
-<item historyLabel="mainWindow.java" index="0">
-<position info="not_deleted" x="11511" y="0"/>
+<item historyLabel="databaseConnectWindow.java" index="2">
+<position/>
 </item>
-<item historyLabel="MySQLdbManager.java" index="3">
-<position info="not_deleted" x="82" y="0"/>
+<item historyLabel="mainWindow.java" index="1">
+<position/>
 </item>
-<item historyLabel="mainWindow.java" index="0">
-<position info="not_deleted" x="11511" y="0"/>
+<item historyLabel="databaseConnectWindow.java" index="2">
+<position/>
 </item>
-<item historyLabel="MySQLdbManager.java" index="4">
-<position info="not_deleted" x="4" y="0"/>
+<item historyLabel="MySQLdbManager.java" index="0">
+<position info="not_deleted" x="12869" y="0"/>
 </item>
-<item historyLabel="mainWindow.java" index="0">
+<item historyLabel="databaseConnectWindow.java" index="2">
 <position/>
 </item>
-<item historyLabel="operatorUserLoginWindow.java" index="5">
+<item historyLabel="mainWindow.java" index="1">
 <position/>
 </item>
-<item historyLabel="mainWindow.java" index="0">
+<item historyLabel="operatorUserLoginWindow.java" index="3">
 <position/>
 </item>
-<item historyLabel="databaseConnectWindow.java" index="6">
+<item historyLabel="operatorUserLoginWindow.java" index="3">
 <position/>
 </item>
-<item historyLabel="mainWindow.java" index="0">
-<position info="not_deleted" x="12368" y="7"/>
-</item>
-<item historyLabel="mainWindow.java" index="0">
-<position info="not_deleted" x="3971" y="0"/>
+<item historyLabel="mainWindow.java" index="1">
+<position/>
 </item>
-<item historyLabel="MySQLdbManager.java" index="7">
-<position info="not_deleted" x="38" y="0"/>
+<item historyLabel="operatorUserLoginWindow.java" index="3">
+<position/>
 </item>
-<item historyLabel="mainWindow.java" index="0">
-<position info="not_deleted" x="13978" y="0"/>
+<item historyLabel="mainWindow.java" index="1">
+<position/>
 </item>
-<item historyLabel="MySQLdbManager.java" index="7">
-<position info="not_deleted" x="680" y="0"/>
+<item historyLabel="operatorUserSettingsWindow.java" index="4">
+<position/>
 </item>
-<item historyLabel="mainWindow.java" index="0">
+<item historyLabel="operatorUserLoginWindow.java" index="3">
 <position/>
 </item>
-<item historyLabel="MySQLdbManager.java" index="7">
-<position info="not_deleted" x="11408" y="0"/>
+<item historyLabel="operatorUserSettingsWindow.java" index="4">
+<position/>
 </item>
-<item historyLabel="mainWindow.java" index="0">
-<position info="not_deleted" x="13824" y="0"/>
+<item historyLabel="mainWindow.java" index="1">
+<position/>
 </item>
-<item historyLabel="databaseConnectWindow.java" index="8">
-<position info="not_deleted" x="4577" y="8"/>
+<item historyLabel="databaseConnectWindow.java" index="2">
+<position/>
 </item>
-<item historyLabel="databaseConnectWindow.java" index="8">
-<position info="not_deleted" x="5302" y="8"/>
+<item historyLabel="mainWindow.java" index="1">
+<position info="not_deleted" x="13540" y="0"/>
 </item>
-<item historyLabel="databaseConnectWindow.java" index="8">
-<position info="not_deleted" x="4581" y="0"/>
+<item historyLabel="operatorUserSettingsWindow.java" index="4">
+<position/>
 </item>
-<item historyLabel="databaseConnectWindow.java" index="8">
-<position info="not_deleted" x="5881" y="0"/>
+<item historyLabel="mainWindow.java" index="1">
+<position info="not_deleted" x="13540" y="0"/>
 </item>
-<item historyLabel="databaseConnectWindow.java" index="8">
-<position info="not_deleted" x="6148" y="8"/>
+<item historyLabel="operatorUserSettingsWindow.java" index="4">
+<position info="not_deleted" x="6750" y="0"/>
 </item>
-<item historyLabel="databaseConnectWindow.java" index="8">
-<position info="not_deleted" x="6986" y="0"/>
+<item historyLabel="mainWindow.java" index="1">
+<position info="not_deleted" x="13797" y="0"/>
 </item>
-<item historyLabel="mainWindow.java" index="0">
-<position info="not_deleted" x="9698" y="0"/>
+<item historyLabel="operatorUserSettingsWindow.java" index="4">
+<position info="not_deleted" x="6633" y="0"/>
 </item>
-<item historyLabel="mainWindow.java" index="0">
-<position info="not_deleted" x="11493" y="0"/>
+<item historyLabel="mainWindow.java" index="1">
+<position info="not_deleted" x="13797" y="0"/>
 </item>
-<item historyLabel="databaseConnectWindow.java" index="8">
-<position info="not_deleted" x="4577" y="8"/>
+<item historyLabel="operatorUserSettingsWindow.java" index="4">
+<position info="not_deleted" x="6633" y="0"/>
 </item>
-<item historyLabel="MySQLdbManager.java" index="7">
-<position info="not_deleted" x="11076" y="0"/>
+<item historyLabel="mainWindow.java" index="1">
+<position info="not_deleted" x="13797" y="0"/>
 </item>
-<item historyLabel="databaseConnectWindow.java" index="8">
-<position info="not_deleted" x="4081" y="0"/>
+<item historyLabel="databaseConnectWindow.java" index="2">
+<position info="not_deleted" x="5983" y="0"/>
 </item>
-<item historyLabel="mainWindow.java" index="0">
-<position info="not_deleted" x="11493" y="0"/>
+<item historyLabel="mainWindow.java" index="1">
+<position info="not_deleted" x="13797" y="0"/>
 </item>
-<item historyLabel="databaseConnectWindow.java" index="8">
-<position info="not_deleted" x="4081" y="0"/>
+<item historyLabel="databaseConnectWindow.java" index="2">
+<position info="not_deleted" x="5983" y="0"/>
 </item>
-<item active="true" historyLabel="MySQLdbManager.java" index="7">
-<position info="not_deleted" x="11076" y="0"/>
+<item active="true" historyLabel="mainWindow.java" index="1">
+<position info="not_deleted" x="13797" y="0"/>
 </item>
 </navigationHistory>
 <input factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/" type="8"/>
@@ -833,13 +769,11 @@
 <trimLayout>
 <trimArea IMemento.internal.id="16384">
 <trimItem IMemento.internal.id="org.eclipse.ui.internal.ViewStack@1ed627d"/>
-<trimItem IMemento.internal.id="left"/>
 </trimArea>
 <trimArea IMemento.internal.id="131072">
 <trimItem IMemento.internal.id="org.eclipse.ui.internal.ViewStack@1d09ed4"/>
 <trimItem IMemento.internal.id="org.eclipse.ui.internal.ViewStack@18f1ef8"/>
 <trimItem IMemento.internal.id="right"/>
-<trimItem IMemento.internal.id="org.eclipse.ui.editorss"/>
 </trimArea>
 <trimArea IMemento.internal.id="128">
 <trimItem IMemento.internal.id="org.eclipse.ui.internal.WorkbenchWindow.topBar"/>
@@ -852,35 +786,34 @@
 <trimItem IMemento.internal.id="com.codegear.capability.ui.contributions.trim"/>
 <trimItem IMemento.internal.id="org.eclipse.ui.internal.ViewStack@1065904"/>
 <trimItem IMemento.internal.id="org.eclipse.ui.internal.ViewStack@d52ea"/>
-<trimItem IMemento.internal.id="bottom"/>
 </trimArea>
 </trimLayout>
 </window>
 <mruList>
+<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" name="operatorUserSettingsWindow.java" tooltip="eShop/src/operatorUserSettingsWindow.java">
+<persistable path="/eShop/src/operatorUserSettingsWindow.java"/>
+</file>
 <file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" name="databaseConnectWindow.java" tooltip="eShop/src/databaseConnectWindow.java">
 <persistable path="/eShop/src/databaseConnectWindow.java"/>
 </file>
-<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="MySQLdbManager.java" tooltip="eShop/src/database_management/MySQLdbManager.java">
-<persistable path="/eShop/src/database_management/MySQLdbManager.java"/>
-</file>
 <file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" name="operatorUserLoginWindow.java" tooltip="eShop/src/operatorUserLoginWindow.java">
 <persistable path="/eShop/src/operatorUserLoginWindow.java"/>
 </file>
-<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" name="operatorUserSettingsWindow.java" tooltip="eShop/src/operatorUserSettingsWindow.java">
-<persistable path="/eShop/src/operatorUserSettingsWindow.java"/>
-</file>
-<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="StringBuilder.class" tooltip="java.lang.StringBuilder">
-<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=eShop/C:\/JBuilder2008R2\/jre\/jre\/lib\/rt.jar&lt;java.lang(StringBuilder.class"/>
-</file>
 <file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" name="mainWindow.java" tooltip="eShop/src/mainWindow.java">
 <persistable path="/eShop/src/mainWindow.java"/>
 </file>
-<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" name="operatorUserLogin.java" tooltip="eShop/src/operatorUserLogin.java">
-<persistable path="/eShop/src/operatorUserLogin.java"/>
+<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="MySQLdbManager.java" tooltip="eShop/src/database_management/MySQLdbManager.java">
+<persistable path="/eShop/src/database_management/MySQLdbManager.java"/>
 </file>
 <file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.jdt.ui.CompilationUnitEditor" name="Md5hashcalc.java" tooltip="eShop/src/md5_calculator/Md5hashcalc.java">
 <persistable path="/eShop/src/md5_calculator/Md5hashcalc.java"/>
 </file>
+<file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="StringBuilder.class" tooltip="java.lang.StringBuilder">
+<persistable org.eclipse.jdt.ui.ClassFileIdentifier="=eShop/C:\/JBuilder2008R2\/jre\/jre\/lib\/rt.jar&lt;java.lang(StringBuilder.class"/>
+</file>
+<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" name="operatorUserLogin.java" tooltip="eShop/src/operatorUserLogin.java">
+<persistable path="/eShop/src/operatorUserLogin.java"/>
+</file>
 <file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="Class.class" tooltip="java.lang.Class">
 <persistable org.eclipse.jdt.ui.ClassFileIdentifier="=eShop/C:\/JBuilder2008R2\/jre\/jre\/lib\/rt.jar&lt;java.lang(Class.class"/>
 </file>

programming_language: CoffeeScript
filename: databaseConnectWindow.java
change_type: ModificationType.MODIFY
diff: @@ -12,9 +12,9 @@ import javax.swing.JButton;
 import javax.swing.JOptionPane;
 
 import database_management.MySQLdbManager;
-import md5_calculator.Md5hashcalc;
 
 public class databaseConnectWindow extends JFrame {
+	private static final long serialVersionUID = 3002L;
 
 	private final JLabel label = new JLabel();
 	private final JLabel label_1 = new JLabel();
@@ -179,6 +179,8 @@ public class databaseConnectWindow extends JFrame {
 			return false;
 		}
 		
+		//FIXME prone??? to sql injection maybe??
+		
 		if (dbPortal.executeNonQuery("CREATE DATABASE " + mysqlDatabaseNameTextField.getText() + " COLLATE utf8_general_ci") != 1) {
 			
 			dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());

programming_language: Java
filename: MySQLdbManager.java
change_type: ModificationType.MODIFY
diff: @@ -125,7 +125,7 @@ public class MySQLdbManager {
 	
 	/**
 	 * Sets MySQL server address. After done you need to call disconnect() and connect() again.
-	 * @param mySqlServerAddress String MySQL server IP address ot HOSTNAME
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
 	 */
 	
 	public void setMySqlServerAddress(String mySqlServerAddress) {
@@ -387,6 +387,47 @@ public class MySQLdbManager {
 		return affectedCount;
 	}
 	
+	/**
+	 * Executes parameterized query and returns the number of affected things. For INSERT, UPDATE, DELETE ...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return int the number of affected things
+	 */
+	
+	public int executeParameterizedNonQuery(String query, Object... parameters) {
+		
+		PreparedStatement sqlStatement;
+		int affectedCount = 0;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return affectedCount;			
+		}
+		else {			
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i + 1, parameters[i]);
+			}
+			
+			sqlStatement.execute();
+			affectedCount = sqlStatement.getUpdateCount();
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();			
+		}
+		
+		return affectedCount;
+	}
+	
 	/**
 	 * Executes query and returns ResultSet with data. For SELECT...
 	 * Warning! Prone to SQL injection!!!
@@ -429,6 +470,55 @@ public class MySQLdbManager {
 		return result;		
 	}
 	
+	/**
+	 * Executes parameterized query and returns ResultSet with data. For SELECT...
+	 * @param query String
+	 * @param parameters Object (for class variable wrappers like String, Integer, etc. only from java.lang !!!!)
+	 * @return ResultSet
+	 */
+	
+	public ResultSet executeParameterizedQuery(String query, Object... parameters) { //executes query and returns ResultSet 
+		
+		PreparedStatement sqlStatement;
+		ResultSet result;
+		
+		if (!isConnected()) {
+			
+			lastError = "No connection!";
+			return null;
+		}
+		else {
+			lastError = null;
+		}
+		
+		try {
+			
+			sqlStatement = dbConnection.prepareStatement(query);
+			
+			for (int i = 0; i < parameters.length; i++) {
+				
+				sqlStatement.setObject(i + 1, parameters[i]);
+			}
+			
+			result = sqlStatement.executeQuery();
+			
+			try {
+				
+				result.first();
+			}
+			catch (Exception ex) {
+				
+			}
+		}
+		catch (SQLException ex) {
+			
+			lastError = ex.getMessage();
+			return null;
+		}
+		
+		return result;		
+	}
+	
 	/**
 	 * Returns the text message exception error of the last called method. Returns null if no error.
 	 * @return String

programming_language: Java
filename: mainWindow.java
change_type: ModificationType.MODIFY
diff: @@ -2,15 +2,11 @@ import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.EventQueue;
-import java.awt.FlowLayout;
-import java.awt.GridLayout;
 import java.awt.Insets;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.awt.event.WindowListener;
-import javax.swing.BoxLayout;
 import javax.swing.JButton;
-import javax.swing.JComponent;
 import java.awt.event.ActionListener;
 import java.awt.event.ActionEvent;
 
@@ -21,21 +17,16 @@ import javax.swing.JMenuBar;
 import javax.swing.JMenuItem;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
-import javax.swing.JSeparator;
-import javax.swing.SpringLayout;
-import javax.swing.border.BevelBorder;
 import javax.swing.border.EtchedBorder;
-import org.jdesktop.layout.GroupLayout;
-import org.jdesktop.layout.LayoutStyle;
 import com.jgoodies.forms.factories.FormFactory;
 import com.jgoodies.forms.layout.CellConstraints;
 import com.jgoodies.forms.layout.ColumnSpec;
 import com.jgoodies.forms.layout.FormLayout;
 import com.jgoodies.forms.layout.RowSpec;
 
-import database_management.MySQLdbManager;
 
 public class mainWindow extends JFrame {
+	private static final long serialVersionUID = 3001L;
 
 	private final JMenuBar mainWindowMenu = new JMenuBar();
 	private final JMenu File = new JMenu();
@@ -48,7 +39,6 @@ public class mainWindow extends JFrame {
 	
 	private final JMenuItem FileDisconnectFromDb = new JMenuItem();
 	private final JPanel mainWindowStatusPanel = new JPanel();
-	private final JPanel panel = new JPanel();
 	private final JLabel mainWindowStatusPanelLoggedUserLabel = new JLabel();
 	private final JButton mainWindowStatusPanelLoggedUserLogin = new JButton();
 	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
@@ -60,6 +50,7 @@ public class mainWindow extends JFrame {
 	private final JMenuItem operationsProductsManagement = new JMenuItem();
 	private final JMenuItem operationsOrdersManagement = new JMenuItem();
 	private final JMenuItem operationsNewOrder = new JMenuItem();
+	
 	/**
 	 * Launch the application
 	 * @param args

programming_language: Java
filename: Md5hashcalc.java
change_type: ModificationType.MODIFY
diff: @@ -7,7 +7,6 @@
 package md5_calculator;
 
 import java.security.MessageDigest;
-import javax.crypto.*;
 
 public class Md5hashcalc {
 	

programming_language: Java
filename: operatorUserLoginWindow.java
change_type: ModificationType.MODIFY
diff: @@ -14,11 +14,10 @@ import javax.swing.WindowConstants;
 import javax.swing.border.TitledBorder;
 
 import java.sql.ResultSet;
-
-import database_management.MySQLdbManager;
 import md5_calculator.Md5hashcalc;
 
 public class operatorUserLoginWindow extends JFrame {
+	private static final long serialVersionUID = 3003L;
 
 	private final JPanel groupLoginPanel = new JPanel();
 	private final JPanel groupCreateNewUserPanel = new JPanel();
@@ -36,12 +35,12 @@ public class operatorUserLoginWindow extends JFrame {
 	private final JTextField newFirstNameTextField = new JTextField();
 	private final JPasswordField newPasswordPasswordField = new JPasswordField();
 	private final JTextField newLastNameTextField = new JTextField();
+	private final JLabel newPasswordAgainLabel = new JLabel();
+	private final JPasswordField newPasswordPasswordAgainField = new JPasswordField();
 	
 	public static int loggedUserId = -1;
-	public static String loggedUserNames = "";
+	public static String loggedUserNames = "";	
 	
-	private final JLabel newPasswordAgainLabel = new JLabel();
-	private final JPasswordField newPasswordPasswordAgainField = new JPasswordField();
 	/**
 	 * Launch the application
 	 * @param args
@@ -174,15 +173,13 @@ public class operatorUserLoginWindow extends JFrame {
 					password += pass[i];
 				}
 				
-				//FIXME prone to sql injection
-				
 				ResultSet rs = null;
 				
 				try {				
 					
-					rs = databaseConnectWindow.dbPortal.executeQuery("SELECT operator_id, operator_first_name, operator_last_name FROM operators WHERE" + 
-						" operator_username='" + loginUsernameTextField.getText() + "' AND operator_password='" +
-						Md5hashcalc.calculateMD5hash(password) + "'");
+					rs = databaseConnectWindow.dbPortal.executeParameterizedQuery("SELECT operator_id, operator_first_name, " + "" +
+							"operator_last_name FROM operators WHERE operator_username = ? AND operator_password = ?", 
+							loginUsernameTextField.getText(), Md5hashcalc.calculateMD5hash(password));							
 				}
 				catch (Exception ex) {
 					System.exit(-1);
@@ -268,9 +265,8 @@ public class operatorUserLoginWindow extends JFrame {
 						System.exit(-1);
 					}
 					
-					//FIXME prone to sql injection
-					ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT COUNT(*) FROM operators WHERE operator_username='" +
-							newUsernameTextField.getText() + "'");
+					ResultSet rs = databaseConnectWindow.dbPortal.executeParameterizedQuery(
+							"SELECT COUNT(*) FROM operators WHERE operator_username=?",	newUsernameTextField.getText());
 					
 					int usersCount = 0;
 					try {
@@ -283,10 +279,10 @@ public class operatorUserLoginWindow extends JFrame {
 					if ((databaseConnectWindow.dbPortal.getLastError() == null) && (usersCount == 0)) {						
 						
 						//no such existing username so now we create it
-						//FIXME prone to sql injection
-						if (databaseConnectWindow.dbPortal.executeNonQuery("INSERT INTO operators(operator_username, operator_password, " +
-								"operator_first_name, operator_last_name) VALUES('" + newUsernameTextField.getText() + "', '" +
-								encryptedPassword + "', '" + newFirstNameTextField.getText() + "', '" + newLastNameTextField.getText() + "')") != 1) {
+						if (databaseConnectWindow.dbPortal.executeParameterizedNonQuery(
+								"INSERT INTO operators(operator_username, operator_password, operator_first_name, " + 
+								"operator_last_name) VALUES(?, ?, ?, ?)", newUsernameTextField.getText(), encryptedPassword,
+								newFirstNameTextField.getText(), newLastNameTextField.getText()) != 1) {
 							
 							JOptionPane.showMessageDialog(this, "     !", "", JOptionPane.ERROR_MESSAGE);
 						}

programming_language: Java
filename: operatorUserSettingsWindow.java
change_type: ModificationType.MODIFY
diff: @@ -12,10 +12,10 @@ import javax.swing.JPasswordField;
 import javax.swing.JTextField;
 
 import java.sql.ResultSet;
-import database_management.MySQLdbManager;
 import md5_calculator.Md5hashcalc;
 
 public class operatorUserSettingsWindow extends JFrame {
+	private static final long serialVersionUID = 3004L;
 
 	private final JLabel usernameLabel = new JLabel();
 	private final JLabel passwordLabel = new JLabel();
@@ -23,15 +23,15 @@ public class operatorUserSettingsWindow extends JFrame {
 	private final JLabel nameLabel = new JLabel();
 	private final JLabel lastNameLabel = new JLabel();
 	private final JButton updateButton = new JButton();
+	private final JButton deleteOperator = new JButton();
 	private final JTextField firstNameTextField = new JTextField();
 	private final JTextField lastNameTextField = new JTextField();
 	private final JPasswordField passwordPasswordField = new JPasswordField();
-	private final JPasswordField passwordAgainPasswordField = new JPasswordField();
+	private final JPasswordField passwordAgainPasswordField = new JPasswordField();	
 	
 	private String currentOperatorPassword = "";
-	public static String operatorFirstNameLastNameCombination = "";
+	public static String operatorFirstNameLastNameCombination = "";	
 	
-	private final JButton deleteOperator = new JButton();
 	/**
 	 * Launch the application
 	 * @param args
@@ -207,13 +207,10 @@ public class operatorUserSettingsWindow extends JFrame {
 			return;
 		}
 		
-		//FIXME prone to sql injection
-		if (databaseConnectWindow.dbPortal.executeNonQuery("UPDATE operators SET operator_password='" + currentOperatorPassword +
-				"', operator_first_name='" + firstNameTextField.getText() + "', operator_last_name='" + 
-				lastNameTextField.getText() + "' WHERE operator_id=" + operatorUserLoginWindow.loggedUserId) != 1) {
+		if (databaseConnectWindow.dbPortal.executeParameterizedNonQuery("UPDATE operators SET operator_password=?, " +
+				"operator_first_name=?, operator_last_name=? WHERE operator_id=?", currentOperatorPassword, 
+				firstNameTextField.getText(), lastNameTextField.getText(), new Integer(operatorUserLoginWindow.loggedUserId)) != 1) {
 		
-		//if (databaseConnectWindow.dbPortal.getLastError() != null) {
-			
 			JOptionPane.showMessageDialog(this, "    !", "  ", JOptionPane.ERROR_MESSAGE);
 			return;
 		}

programming_language: Java