CVE-2013-10008: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') (CWE-89)
value: 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.
CWE 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.
CVSS v3 base score: 9.8
Published: 2023-01-06T22:15Z
Repository: https://github.com/sheilazpy/eShop
Language: Other
Files changed: eShop/.metadata/.log, eShop/.metadata/.mylyn/monitor-log.xml, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/0/00732ff1a25d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/12/f0aff560a45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/18/10bfa35fa55d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/1f/200b7592a45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/1f/70700e07a55d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/25/b05af020b65d001211398853d386ea7d, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/2d/10122d7aa45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/32/1047046ea45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/33/b0a2eb76a45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/39/3051c538b75d001211398853d386ea7d, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3b/a0275544a35d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3d/c05fc1fca35d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3f/404dcf53b35d001211398853d386ea7d, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3f/a0c32771a35d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/41/d0500513b75d001211398853d386ea7d, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/46/008349d2ab5d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/49/40fed919a55d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/4f/50d63551b65d001211398853d386ea7d, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/54/50455296a45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/57/900cbfa3a55d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/6/f02d9590ac5d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/61/2068ed71a45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/63/f0911911ad5d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/69/20e7fe1cb45d001211398853d386ea7d, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/6d/500d2f6eb45d001211398853d386ea7d, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/6d/c08119b3a05d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/7a/d0479e0ea45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/7e/f03e2183a45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/82/50bb024db35d001211398853d386ea7d, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/83/c097dbfea45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/8b/20041debb45d001211398853d386ea7d, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9a/f086c342aa5d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9c/80cc88dcb65d001211398853d386ea7d, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9c/f096a4cba35d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9f/808cfa98a55d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/a1/a03b43f5a45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/a8/40b444ccb35d001211398853d386ea7d, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/b8/60ea091bb35d001211398853d386ea7d, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c2/9020359db35d001211398853d386ea7d, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c5/a02137b1aa5d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c9/00c97468a45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/ca/50c4b340ab5d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d/a085d459b55d001211398853d386ea7d, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d1/f0b87e7ea45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d2/10685414a15d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d5/d0782d99a45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d9/c08d3857a45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/df/10d6230fa55d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/df/603e699bac5d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/df/704ad386a45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e/b0eb4bb1b65d001211398853d386ea7d, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e1/4031c38ea55d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e8/20b5d438a45d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/f1/e00edf7aa25d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.history/f8/502d6e21a25d00121890bdcc27f78f62, eShop/.metadata/.plugins/org.eclipse.core.resources/.safetable/net.sourceforge.eclipseccase.16, eShop/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.usage.prefs, eShop/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml, eShop/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt, eShop/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml, eShop/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml, eShop/eShop/src/databaseConnectWindow.java, eShop/eShop/src/database_management/MySQLdbManager.java, eShop/eShop/src/mainWindow.java, eShop/eShop/src/md5_calculator/Md5hashcalc.java, eShop/eShop/src/operatorUserLoginWindow.java, eShop/eShop/src/operatorUserSettingsWindow.java
Commit date: 2013-01-13 21:31:02 +0200
Commit message: some sql injection vulnerabilities fixes

+ some sql injection vulnerabilities fixes
+ new sql injection safe methods in mysql wrapper

Diff: diff --git a/eShop/.metadata/.log b/eShop/.metadata/.log
index a3532dd..52e7bb9 100644
--- a/eShop/.metadata/.log
+++ b/eShop/.metadata/.log
@@ -3648,5 +3648,238 @@ java.lang.NullPointerException: Cannot set a null prefix table
 	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 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)
diff --git a/eShop/.metadata/.mylyn/.tasks.xml.zip b/eShop/.metadata/.mylyn/.tasks.xml.zip
index c568659..41f7e13 100644
Binary files a/eShop/.metadata/.mylyn/.tasks.xml.zip and b/eShop/.metadata/.mylyn/.tasks.xml.zip differ
diff --git a/eShop/.metadata/.mylyn/monitor-log.xml b/eShop/.metadata/.mylyn/monitor-log.xml
index b088e6c..297b135 100644
--- a/eShop/.metadata/.mylyn/monitor-log.xml
+++ b/eShop/.metadata/.mylyn/monitor-log.xml
@@ -56547,5 +56547,10015 @@
 	<structureHandle>gZmLkbazE00TxC8oVszpqUbRzow=/K+iMpCQsduglOsYkdIUQZQMtaDM=</structureHandle>
 	<navigation>null</navigation>
 	<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>
diff --git a/eShop/.metadata/.mylyn/tasks.xml.zip b/eShop/.metadata/.mylyn/tasks.xml.zip
index 182488c..4e86020 100644
Binary files a/eShop/.metadata/.mylyn/tasks.xml.zip and b/eShop/.metadata/.mylyn/tasks.xml.zip differ
diff --git a/eShop/.metadata/.plugins/net.sourceforge.eclipseccase/statecache14 b/eShop/.metadata/.plugins/net.sourceforge.eclipseccase/statecache16
similarity index 100%
rename from eShop/.metadata/.plugins/net.sourceforge.eclipseccase/statecache14
rename to eShop/.metadata/.plugins/net.sourceforge.eclipseccase/statecache16
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/0/00732ff1a25d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/0/00732ff1a25d00121890bdcc27f78f62
new file mode 100644
index 0000000..5a0d289
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/0/00732ff1a25d00121890bdcc27f78f62
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/82/704a91fbc25c00121313f2b705d35bed b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/12/f0aff560a45d00121890bdcc27f78f62
similarity index 59%
rename from eShop/.metadata/.plugins/org.eclipse.core.resources/.history/82/704a91fbc25c00121313f2b705d35bed
rename to eShop/.metadata/.plugins/org.eclipse.core.resources/.history/12/f0aff560a45d00121890bdcc27f78f62
index 4c87052..66ab24c 100644
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/82/704a91fbc25c00121313f2b705d35bed
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/12/f0aff560a45d00121890bdcc27f78f62
@@ -2,10 +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;
@@ -30,10 +31,11 @@ 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();
@@ -43,13 +45,21 @@ public class mainWindow extends JFrame {
 	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 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[]) {
@@ -108,21 +118,40 @@ public class mainWindow extends JFrame {
 		
 		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);
@@ -130,13 +159,28 @@ public class mainWindow extends JFrame {
 		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));
+		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);
 	}
 	
 	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
 		
@@ -168,42 +212,70 @@ public class mainWindow extends JFrame {
 	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.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
+				databaseConnectWindow.dbPortal.finalize();
 			}
 		}
 		this.dispose();
 		//System.exit(0);
 	}
 	
 	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);
 	}
 	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
@@ -232,22 +304,24 @@ public class mainWindow extends JFrame {
     
 	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
 		
 		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);
 		oul.addWindowListener(operatorUserLoginWindowClosing);
 	}
@@ -264,9 +338,62 @@ public class mainWindow extends JFrame {
 				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...
+	}
+	
+	
+	
+	
 }
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/18/10bfa35fa55d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/18/10bfa35fa55d00121890bdcc27f78f62
new file mode 100644
index 0000000..0a1b6a0
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/18/10bfa35fa55d00121890bdcc27f78f62
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/1b/10ee494fb45c00121e34961e0ace9d22 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/1b/10ee494fb45c00121e34961e0ace9d22
deleted file mode 100644
index 4672aec..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/1b/10ee494fb45c00121e34961e0ace9d22
+++ /dev/null
@@ -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);
-	}
-
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/1c/b065388fff5c00121f22d5fb8a5d79d9 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/1c/b065388fff5c00121f22d5fb8a5d79d9
deleted file mode 100644
index ee00951..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/1c/b065388fff5c00121f22d5fb8a5d79d9
+++ /dev/null
@@ -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;
-		}
-	}
-
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/42/a0b9878e5a5b0012179f93dc572b551d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/1f/200b7592a45d00121890bdcc27f78f62
similarity index 72%
rename from eShop/.metadata/.plugins/org.eclipse.core.resources/.history/42/a0b9878e5a5b0012179f93dc572b551d
rename to eShop/.metadata/.plugins/org.eclipse.core.resources/.history/1f/200b7592a45d00121890bdcc27f78f62
index 066e516..24d7099 100644
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/42/a0b9878e5a5b0012179f93dc572b551d
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/1f/200b7592a45d00121890bdcc27f78f62
@@ -1,19 +1,20 @@
 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.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();
@@ -31,29 +32,29 @@ public class databaseConnectWindow extends JFrame {
 	/**
 	 * Launch the application
 	 * @param args
 	 */
 	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
+		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);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
 		try {
 			jbInit();
 		} catch (Throwable e) {
 			e.printStackTrace();
 		}
@@ -113,10 +114,11 @@ public class databaseConnectWindow extends JFrame {
 	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();
@@ -134,11 +136,11 @@ public class databaseConnectWindow extends JFrame {
 			
 			dbPortal.setMySqlActiveDatabase("");
 			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);
 				
 				return;
 			}
@@ -150,15 +152,15 @@ public class databaseConnectWindow extends JFrame {
 						".\nÑèãóðíè ëè ñòå?", "Ñúçäàâàíå íà íîâà áàçà äàííè?", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
 					
 					if (createNewDatabaseAndTables() == false) { //in case of fail do not close this window
 						
 						return;
-					}					
+					}
 				}
 				else {
 				
-					dbPortal.finallize();
+					dbPortal.finalize();
 					return;
 				}
 				
 				this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
 			}			
@@ -169,74 +171,81 @@ public class databaseConnectWindow extends JFrame {
 	
 	private boolean createNewDatabaseAndTables() {
 		
 		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;
-	}
-
+	}	
 }
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/1f/70700e07a55d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/1f/70700e07a55d00121890bdcc27f78f62
new file mode 100644
index 0000000..b27d921
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/1f/70700e07a55d00121890bdcc27f78f62
@@ -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);
+		}		
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/20/40886ce5fe5c00121f22d5fb8a5d79d9 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/20/40886ce5fe5c00121f22d5fb8a5d79d9
deleted file mode 100644
index 82db293..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/20/40886ce5fe5c00121f22d5fb8a5d79d9
+++ /dev/null
@@ -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() {
-		
-	}
-
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/25/50c3d407585b0012179f93dc572b551d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/25/50c3d407585b0012179f93dc572b551d
deleted file mode 100644
index 6f992b0..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/25/50c3d407585b0012179f93dc572b551d
+++ /dev/null
@@ -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() {
-		
-		
-	}
-
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/25/b05af020b65d001211398853d386ea7d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/25/b05af020b65d001211398853d386ea7d
new file mode 100644
index 0000000..f7a93b5
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/25/b05af020b65d001211398853d386ea7d
@@ -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;
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/2d/10122d7aa45d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/2d/10122d7aa45d00121890bdcc27f78f62
new file mode 100644
index 0000000..407f9ca
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/2d/10122d7aa45d00121890bdcc27f78f62
@@ -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...
+	}
+	
+	
+	
+	
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/2e/40e3e55f575b0012179f93dc572b551d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/2e/40e3e55f575b0012179f93dc572b551d
deleted file mode 100644
index ad64fc8..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/2e/40e3e55f575b0012179f93dc572b551d
+++ /dev/null
@@ -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));		
-	}
-
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/30/b092ea0ab45c00121e34961e0ace9d22 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/30/b092ea0ab45c00121e34961e0ace9d22
deleted file mode 100644
index 645b183..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/30/b092ea0ab45c00121e34961e0ace9d22
+++ /dev/null
@@ -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);
-		//
-	}
-
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/32/1047046ea45d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/32/1047046ea45d00121890bdcc27f78f62
new file mode 100644
index 0000000..f8dd00b
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/32/1047046ea45d00121890bdcc27f78f62
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/6b/9032d3a9b65c00121e34961e0ace9d22 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/33/b0a2eb76a45d00121890bdcc27f78f62
similarity index 56%
rename from eShop/.metadata/.plugins/org.eclipse.core.resources/.history/6b/9032d3a9b65c00121e34961e0ace9d22
rename to eShop/.metadata/.plugins/org.eclipse.core.resources/.history/33/b0a2eb76a45d00121890bdcc27f78f62
index ddd54d5..8081c63 100644
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/6b/9032d3a9b65c00121e34961e0ace9d22
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/33/b0a2eb76a45d00121890bdcc27f78f62
@@ -1,11 +1,10 @@
 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;
@@ -30,10 +29,11 @@ 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();
@@ -43,13 +43,21 @@ public class mainWindow extends JFrame {
 	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 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[]) {
@@ -108,21 +116,40 @@ public class mainWindow extends JFrame {
 		
 		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);
@@ -130,13 +157,28 @@ public class mainWindow extends JFrame {
 		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));
+		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);
 	}
 	
 	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
 		
@@ -168,42 +210,70 @@ public class mainWindow extends JFrame {
 	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.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
+				databaseConnectWindow.dbPortal.finalize();
 			}
 		}
 		this.dispose();
 		//System.exit(0);
 	}
 	
 	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);
 	}
 	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
@@ -232,20 +302,24 @@ public class mainWindow extends JFrame {
     
 	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
 		
 		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);
 		oul.addWindowListener(operatorUserLoginWindowClosing);
 	}
@@ -253,14 +327,71 @@ public class mainWindow extends JFrame {
 
 		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...
+	}
+	
+	
+	
 	
 }
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/34/b0d63c8da55c00121e34961e0ace9d22 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/34/b0d63c8da55c00121e34961e0ace9d22
deleted file mode 100644
index 876583a..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/34/b0d63c8da55c00121e34961e0ace9d22
+++ /dev/null
@@ -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);			
-		}
-	}
-	
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/39/3051c538b75d001211398853d386ea7d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/39/3051c538b75d001211398853d386ea7d
new file mode 100644
index 0000000..70a850a
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/39/3051c538b75d001211398853d386ea7d
@@ -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;
+	}	
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e3/40e5eb51585b0012179f93dc572b551d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3b/a0275544a35d00121890bdcc27f78f62
similarity index 73%
rename from eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e3/40e5eb51585b0012179f93dc572b551d
rename to eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3b/a0275544a35d00121890bdcc27f78f62
index c3c9955..363f0aa 100644
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e3/40e5eb51585b0012179f93dc572b551d
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3b/a0275544a35d00121890bdcc27f78f62
@@ -1,19 +1,20 @@
 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.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();
@@ -31,29 +32,29 @@ public class databaseConnectWindow extends JFrame {
 	/**
 	 * Launch the application
 	 * @param args
 	 */
 	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
+		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);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
 		try {
 			jbInit();
 		} catch (Throwable e) {
 			e.printStackTrace();
 		}
@@ -113,10 +114,11 @@ public class databaseConnectWindow extends JFrame {
 	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();
@@ -134,11 +136,11 @@ public class databaseConnectWindow extends JFrame {
 			
 			dbPortal.setMySqlActiveDatabase("");
 			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);
 				
 				return;
 			}
@@ -151,15 +153,14 @@ public class databaseConnectWindow extends JFrame {
 					
 					if (createNewDatabaseAndTables() == false) { //in case of fail do not close this window
 						
 						return;
 					}
-					
 				}
 				else {
 				
-					dbPortal.finallize();
+					dbPortal.finalize();
 					return;
 				}
 				
 				this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
 			}			
@@ -168,20 +169,48 @@ public class databaseConnectWindow extends JFrame {
 		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
 	}
 	
 	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," + 
 				"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)");
@@ -193,9 +222,28 @@ public class databaseConnectWindow extends JFrame {
 				"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;
-	}
-
+	}	
 }
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/8b/b0770268be5c00121313f2b705d35bed b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3d/c05fc1fca35d00121890bdcc27f78f62
similarity index 57%
rename from eShop/.metadata/.plugins/org.eclipse.core.resources/.history/8b/b0770268be5c00121313f2b705d35bed
rename to eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3d/c05fc1fca35d00121890bdcc27f78f62
index ae5aead..fc97f42 100644
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/8b/b0770268be5c00121313f2b705d35bed
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3d/c05fc1fca35d00121890bdcc27f78f62
@@ -2,10 +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;
@@ -30,10 +31,12 @@ 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();
@@ -45,11 +48,20 @@ 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
 	 */
 	public static void main(String args[]) {
@@ -108,21 +120,40 @@ public class mainWindow extends JFrame {
 		
 		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);
@@ -130,13 +161,28 @@ public class mainWindow extends JFrame {
 		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));
+		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);
 	}
 	
 	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
 		
@@ -168,42 +214,70 @@ public class mainWindow extends JFrame {
 	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.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
+				databaseConnectWindow.dbPortal.finalize();
 			}
 		}
 		this.dispose();
 		//System.exit(0);
 	}
 	
 	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);
 	}
 	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
@@ -232,22 +306,24 @@ public class mainWindow extends JFrame {
     
 	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
 		
 		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);
 		oul.addWindowListener(operatorUserLoginWindowClosing);
 	}
@@ -255,16 +331,71 @@ public class mainWindow extends JFrame {
 
 		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...
+	}
+	
+	
+	
+	
 }
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3f/404dcf53b35d001211398853d386ea7d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3f/404dcf53b35d001211398853d386ea7d
new file mode 100644
index 0000000..9bf823c
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3f/404dcf53b35d001211398853d386ea7d
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3f/a0c32771a35d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3f/a0c32771a35d00121890bdcc27f78f62
new file mode 100644
index 0000000..c7d586e
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/3f/a0c32771a35d00121890bdcc27f78f62
@@ -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;
+	}	
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/75/a07e9ce2595b0012179f93dc572b551d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/41/d0500513b75d001211398853d386ea7d
similarity index 70%
rename from eShop/.metadata/.plugins/org.eclipse.core.resources/.history/75/a07e9ce2595b0012179f93dc572b551d
rename to eShop/.metadata/.plugins/org.eclipse.core.resources/.history/41/d0500513b75d001211398853d386ea7d
index eaae3b3..8a7eabf 100644
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/75/a07e9ce2595b0012179f93dc572b551d
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/41/d0500513b75d001211398853d386ea7d
@@ -1,21 +1,22 @@
 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.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();
@@ -31,29 +32,29 @@ public class databaseConnectWindow extends JFrame {
 	/**
 	 * Launch the application
 	 * @param args
 	 */
 	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
+		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);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
 		try {
 			jbInit();
 		} catch (Throwable e) {
 			e.printStackTrace();
 		}
@@ -113,10 +114,11 @@ public class databaseConnectWindow extends JFrame {
 	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();
@@ -134,11 +136,11 @@ public class databaseConnectWindow extends JFrame {
 			
 			dbPortal.setMySqlActiveDatabase("");
 			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);
 				
 				return;
 			}
@@ -150,15 +152,15 @@ public class databaseConnectWindow extends JFrame {
 						".\nÑèãóðíè ëè ñòå?", "Ñúçäàâàíå íà íîâà áàçà äàííè?", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
 					
 					if (createNewDatabaseAndTables() == false) { //in case of fail do not close this window
 						
 						return;
-					}					
+					}
 				}
 				else {
 				
-					dbPortal.finallize();
+					dbPortal.finalize();
 					return;
 				}
 				
 				this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
 			}			
@@ -169,61 +171,81 @@ public class databaseConnectWindow extends JFrame {
 	
 	private boolean createNewDatabaseAndTables() {
 		
 		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;
-	}
-
+	}	
 }
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/42/203efae3ff5c00121f22d5fb8a5d79d9 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/42/203efae3ff5c00121f22d5fb8a5d79d9
deleted file mode 100644
index a4b9403..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/42/203efae3ff5c00121f22d5fb8a5d79d9
+++ /dev/null
@@ -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) {			
-		}		
-	}
-
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/46/008349d2ab5d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/46/008349d2ab5d00121890bdcc27f78f62
new file mode 100644
index 0000000..d1a01d3
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/46/008349d2ab5d00121890bdcc27f78f62
@@ -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);
+		}		
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/47/a0f5259eb55c00121e34961e0ace9d22 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/47/a0f5259eb55c00121e34961e0ace9d22
deleted file mode 100644
index f335d44..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/47/a0f5259eb55c00121e34961e0ace9d22
+++ /dev/null
@@ -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)
-	}
-	
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/49/40fed919a55d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/49/40fed919a55d00121890bdcc27f78f62
new file mode 100644
index 0000000..6a63a1a
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/49/40fed919a55d00121890bdcc27f78f62
@@ -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...
+	}
+	
+	
+	
+	
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/4f/50d63551b65d001211398853d386ea7d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/4f/50d63551b65d001211398853d386ea7d
new file mode 100644
index 0000000..33cd25c
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/4f/50d63551b65d001211398853d386ea7d
@@ -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;
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/4f/f0d96297ff5c00121f22d5fb8a5d79d9 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/4f/f0d96297ff5c00121f22d5fb8a5d79d9
deleted file mode 100644
index b995616..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/4f/f0d96297ff5c00121f22d5fb8a5d79d9
+++ /dev/null
@@ -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) {
-			
-		}		
-	}
-
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/54/50455296a45d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/54/50455296a45d00121890bdcc27f78f62
new file mode 100644
index 0000000..8201e12
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/54/50455296a45d00121890bdcc27f78f62
@@ -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...
+	}
+	
+	
+	
+	
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/57/200bcdeeb45c00121e34961e0ace9d22 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/57/200bcdeeb45c00121e34961e0ace9d22
deleted file mode 100644
index 6ca4f5d..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/57/200bcdeeb45c00121e34961e0ace9d22
+++ /dev/null
@@ -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);
-	}
-
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/57/900cbfa3a55d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/57/900cbfa3a55d00121890bdcc27f78f62
new file mode 100644
index 0000000..40ebc25
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/57/900cbfa3a55d00121890bdcc27f78f62
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/6/f02d9590ac5d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/6/f02d9590ac5d00121890bdcc27f78f62
new file mode 100644
index 0000000..7301feb
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/6/f02d9590ac5d00121890bdcc27f78f62
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/61/2068ed71a45d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/61/2068ed71a45d00121890bdcc27f78f62
new file mode 100644
index 0000000..7b28621
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/61/2068ed71a45d00121890bdcc27f78f62
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/63/f0911911ad5d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/63/f0911911ad5d00121890bdcc27f78f62
new file mode 100644
index 0000000..8b6f6e5
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/63/f0911911ad5d00121890bdcc27f78f62
@@ -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);
+		}		
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/69/20e7fe1cb45d001211398853d386ea7d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/69/20e7fe1cb45d001211398853d386ea7d
new file mode 100644
index 0000000..431af6c
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/69/20e7fe1cb45d001211398853d386ea7d
@@ -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);
+		}		
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/6d/500d2f6eb45d001211398853d386ea7d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/6d/500d2f6eb45d001211398853d386ea7d
new file mode 100644
index 0000000..17987f7
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/6d/500d2f6eb45d001211398853d386ea7d
@@ -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;
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/6d/c08119b3a05d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/6d/c08119b3a05d00121890bdcc27f78f62
new file mode 100644
index 0000000..1624491
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/6d/c08119b3a05d00121890bdcc27f78f62
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/70/d0bf4040fe5c00121f22d5fb8a5d79d9 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/70/d0bf4040fe5c00121f22d5fb8a5d79d9
deleted file mode 100644
index 3f5ce16..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/70/d0bf4040fe5c00121f22d5fb8a5d79d9
+++ /dev/null
@@ -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);
-	}
-
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/7a/d0479e0ea45d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/7a/d0479e0ea45d00121890bdcc27f78f62
new file mode 100644
index 0000000..ada67f6
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/7a/d0479e0ea45d00121890bdcc27f78f62
@@ -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...
+	}
+	
+	
+	
+	
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/7e/f03e2183a45d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/7e/f03e2183a45d00121890bdcc27f78f62
new file mode 100644
index 0000000..501cc9f
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/7e/f03e2183a45d00121890bdcc27f78f62
@@ -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...
+	}
+	
+	
+	
+	
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/81/e0b4aac9b55c00121e34961e0ace9d22 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/81/e0b4aac9b55c00121e34961e0ace9d22
deleted file mode 100644
index 3dac18a..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/81/e0b4aac9b55c00121e34961e0ace9d22
+++ /dev/null
@@ -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)
-	}
-	
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/82/50bb024db35d001211398853d386ea7d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/82/50bb024db35d001211398853d386ea7d
new file mode 100644
index 0000000..316263e
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/82/50bb024db35d001211398853d386ea7d
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/bd/b03aad38595b0012179f93dc572b551d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/83/c097dbfea45d00121890bdcc27f78f62
similarity index 73%
rename from eShop/.metadata/.plugins/org.eclipse.core.resources/.history/bd/b03aad38595b0012179f93dc572b551d
rename to eShop/.metadata/.plugins/org.eclipse.core.resources/.history/83/c097dbfea45d00121890bdcc27f78f62
index c9838fa..f8a39b5 100644
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/bd/b03aad38595b0012179f93dc572b551d
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/83/c097dbfea45d00121890bdcc27f78f62
@@ -1,16 +1,16 @@
 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.WindowConstants;
+import javax.swing.JButton;
 import javax.swing.JOptionPane;
 
 import database_management.MySQLdbManager;
 
 public class databaseConnectWindow extends JFrame {
@@ -31,29 +31,29 @@ public class databaseConnectWindow extends JFrame {
 	/**
 	 * Launch the application
 	 * @param args
 	 */
 	public static void main(String args[]) {
-		EventQueue.invokeLater(new Runnable() {
+		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);
+		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
 		try {
 			jbInit();
 		} catch (Throwable e) {
 			e.printStackTrace();
 		}
@@ -113,10 +113,11 @@ public class databaseConnectWindow extends JFrame {
 	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();
@@ -134,11 +135,11 @@ public class databaseConnectWindow extends JFrame {
 			
 			dbPortal.setMySqlActiveDatabase("");
 			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);
 				
 				return;
 			}
@@ -150,15 +151,15 @@ public class databaseConnectWindow extends JFrame {
 						".\nÑèãóðíè ëè ñòå?", "Ñúçäàâàíå íà íîâà áàçà äàííè?", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
 					
 					if (createNewDatabaseAndTables() == false) { //in case of fail do not close this window
 						
 						return;
-					}					
+					}
 				}
 				else {
 				
-					dbPortal.finallize();
+					dbPortal.finalize();
 					return;
 				}
 				
 				this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
 			}			
@@ -167,22 +168,50 @@ public class databaseConnectWindow extends JFrame {
 		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
 	}
 	
 	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," + 
 				"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)");
@@ -194,9 +223,28 @@ public class databaseConnectWindow extends JFrame {
 				"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;
-	}
-
+	}	
 }
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/8b/20041debb45d001211398853d386ea7d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/8b/20041debb45d001211398853d386ea7d
new file mode 100644
index 0000000..ed02d03
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/8b/20041debb45d001211398853d386ea7d
@@ -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;
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9a/40de69c5b25c00121e34961e0ace9d22 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9a/40de69c5b25c00121e34961e0ace9d22
deleted file mode 100644
index c5183b2..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9a/40de69c5b25c00121e34961e0ace9d22
+++ /dev/null
@@ -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);			
-		}
-	}
-	
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9a/f086c342aa5d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9a/f086c342aa5d00121890bdcc27f78f62
new file mode 100644
index 0000000..b7d91dc
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9a/f086c342aa5d00121890bdcc27f78f62
@@ -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);
+		}		
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9c/80cc88dcb65d001211398853d386ea7d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9c/80cc88dcb65d001211398853d386ea7d
new file mode 100644
index 0000000..372044e
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9c/80cc88dcb65d001211398853d386ea7d
@@ -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;
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9c/f096a4cba35d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9c/f096a4cba35d00121890bdcc27f78f62
new file mode 100644
index 0000000..42a4452
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9c/f096a4cba35d00121890bdcc27f78f62
@@ -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;
+	}	
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9f/808cfa98a55d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9f/808cfa98a55d00121890bdcc27f78f62
new file mode 100644
index 0000000..26ed8c9
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/9f/808cfa98a55d00121890bdcc27f78f62
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/a1/a03b43f5a45d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/a1/a03b43f5a45d00121890bdcc27f78f62
new file mode 100644
index 0000000..3429518
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/a1/a03b43f5a45d00121890bdcc27f78f62
@@ -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...
+	}
+	
+	
+	
+	
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/a5/90b2a96db55c00121e34961e0ace9d22 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/a5/90b2a96db55c00121e34961e0ace9d22
deleted file mode 100644
index 9292527..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/a5/90b2a96db55c00121e34961e0ace9d22
+++ /dev/null
@@ -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) {
-	}
-	
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/a8/40b444ccb35d001211398853d386ea7d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/a8/40b444ccb35d001211398853d386ea7d
new file mode 100644
index 0000000..92e673e
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/a8/40b444ccb35d001211398853d386ea7d
@@ -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);
+		}		
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/b8/60ea091bb35d001211398853d386ea7d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/b8/60ea091bb35d001211398853d386ea7d
new file mode 100644
index 0000000..c146fbc
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/b8/60ea091bb35d001211398853d386ea7d
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/b9/8001c7c3a35c00121e34961e0ace9d22 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/b9/8001c7c3a35c00121e34961e0ace9d22
deleted file mode 100644
index eed77ca..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/b9/8001c7c3a35c00121e34961e0ace9d22
+++ /dev/null
@@ -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);
-		}
-	}
-	
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/bd/30f22be6b25c00121e34961e0ace9d22 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/bd/30f22be6b25c00121e34961e0ace9d22
deleted file mode 100644
index e69de29..0000000
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c2/9020359db35d001211398853d386ea7d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c2/9020359db35d001211398853d386ea7d
new file mode 100644
index 0000000..f8786fc
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c2/9020359db35d001211398853d386ea7d
@@ -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);
+		}		
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c4/e0b4ec30a35c00121e34961e0ace9d22 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c4/e0b4ec30a35c00121e34961e0ace9d22
deleted file mode 100644
index 9944366..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c4/e0b4ec30a35c00121e34961e0ace9d22
+++ /dev/null
@@ -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);
-		}
-	}
-	
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c5/a02137b1aa5d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c5/a02137b1aa5d00121890bdcc27f78f62
new file mode 100644
index 0000000..604d764
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c5/a02137b1aa5d00121890bdcc27f78f62
@@ -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);
+		}		
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c8/3006c73e005d00121f22d5fb8a5d79d9 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c8/3006c73e005d00121f22d5fb8a5d79d9
deleted file mode 100644
index 57b7ad2..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c8/3006c73e005d00121f22d5fb8a5d79d9
+++ /dev/null
@@ -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) {			
-		}		
-	}
-
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/86/70c8dfeeb75c00121e34961e0ace9d22 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c9/00c97468a45d00121890bdcc27f78f62
similarity index 57%
rename from eShop/.metadata/.plugins/org.eclipse.core.resources/.history/86/70c8dfeeb75c00121e34961e0ace9d22
rename to eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c9/00c97468a45d00121890bdcc27f78f62
index 7c406e8..9e873b3 100644
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/86/70c8dfeeb75c00121e34961e0ace9d22
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/c9/00c97468a45d00121890bdcc27f78f62
@@ -1,11 +1,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;
@@ -30,10 +30,11 @@ 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();
@@ -43,13 +44,21 @@ public class mainWindow extends JFrame {
 	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 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[]) {
@@ -108,21 +117,40 @@ public class mainWindow extends JFrame {
 		
 		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);
@@ -130,13 +158,28 @@ public class mainWindow extends JFrame {
 		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));
+		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);
 	}
 	
 	protected void mainWindowStatusPanelSetEnabled(boolean enable) {
 		
@@ -168,42 +211,70 @@ public class mainWindow extends JFrame {
 	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.disconnect();
-				databaseConnectWindow.dbPortal.finallize();
+				databaseConnectWindow.dbPortal.finalize();
 			}
 		}
 		this.dispose();
 		//System.exit(0);
 	}
 	
 	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);
 	}
 	private static WindowListener databaseConnectWindowClosing = new WindowAdapter() {
@@ -232,22 +303,24 @@ public class mainWindow extends JFrame {
     
 	protected void fileDisconnectFromDb_actionPerformed(ActionEvent e) {
 		
 		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);
 		oul.addWindowListener(operatorUserLoginWindowClosing);
 	}
@@ -255,16 +328,71 @@ public class mainWindow extends JFrame {
 
 		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...
+	}
+	
+	
+	
+	
 }
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/ca/50c4b340ab5d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/ca/50c4b340ab5d00121890bdcc27f78f62
new file mode 100644
index 0000000..b5016b3
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/ca/50c4b340ab5d00121890bdcc27f78f62
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d/a085d459b55d001211398853d386ea7d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d/a085d459b55d001211398853d386ea7d
new file mode 100644
index 0000000..b1bd1ed
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d/a085d459b55d001211398853d386ea7d
@@ -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);
+		}		
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d1/f0b87e7ea45d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d1/f0b87e7ea45d00121890bdcc27f78f62
new file mode 100644
index 0000000..f6aa58f
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d1/f0b87e7ea45d00121890bdcc27f78f62
@@ -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...
+	}
+	
+	
+	
+	
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d2/10685414a15d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d2/10685414a15d00121890bdcc27f78f62
new file mode 100644
index 0000000..e38c568
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d2/10685414a15d00121890bdcc27f78f62
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d4/00fa639bb65c00121e34961e0ace9d22 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d4/00fa639bb65c00121e34961e0ace9d22
deleted file mode 100644
index fe60dbf..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d4/00fa639bb65c00121e34961e0ace9d22
+++ /dev/null
@@ -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) {
-			
-		}
-	}
-	
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d5/10e72249585b0012179f93dc572b551d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d5/10e72249585b0012179f93dc572b551d
deleted file mode 100644
index 8bd3588..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d5/10e72249585b0012179f93dc572b551d
+++ /dev/null
@@ -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();
-		}
-		
-	}
-
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d5/d0782d99a45d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d5/d0782d99a45d00121890bdcc27f78f62
new file mode 100644
index 0000000..a71bc13
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d5/d0782d99a45d00121890bdcc27f78f62
@@ -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...
+	}
+	
+	
+	
+	
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d9/c08d3857a45d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d9/c08d3857a45d00121890bdcc27f78f62
new file mode 100644
index 0000000..8506f72
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/d9/c08d3857a45d00121890bdcc27f78f62
@@ -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;
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/da/b0a19e69a15c00121e34961e0ace9d22 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/da/b0a19e69a15c00121e34961e0ace9d22
deleted file mode 100644
index 68729a6..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/da/b0a19e69a15c00121e34961e0ace9d22
+++ /dev/null
@@ -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);
-		}
-	}
-	
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/df/10d6230fa55d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/df/10d6230fa55d00121890bdcc27f78f62
new file mode 100644
index 0000000..4a4afce
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/df/10d6230fa55d00121890bdcc27f78f62
@@ -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;
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/df/603e699bac5d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/df/603e699bac5d00121890bdcc27f78f62
new file mode 100644
index 0000000..62c1a76
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/df/603e699bac5d00121890bdcc27f78f62
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/df/704ad386a45d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/df/704ad386a45d00121890bdcc27f78f62
new file mode 100644
index 0000000..51cb5c3
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/df/704ad386a45d00121890bdcc27f78f62
@@ -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...
+	}
+	
+	
+	
+	
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e/b0eb4bb1b65d001211398853d386ea7d b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e/b0eb4bb1b65d001211398853d386ea7d
new file mode 100644
index 0000000..0f5d5a6
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e/b0eb4bb1b65d001211398853d386ea7d
@@ -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;
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e1/4031c38ea55d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e1/4031c38ea55d00121890bdcc27f78f62
new file mode 100644
index 0000000..931bbc9
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e1/4031c38ea55d00121890bdcc27f78f62
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e6/204f8283fe5c00121f22d5fb8a5d79d9 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e6/204f8283fe5c00121f22d5fb8a5d79d9
deleted file mode 100644
index d4f4dd6..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e6/204f8283fe5c00121f22d5fb8a5d79d9
+++ /dev/null
@@ -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);
-	}
-
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e8/20b5d438a45d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e8/20b5d438a45d00121890bdcc27f78f62
new file mode 100644
index 0000000..3077813
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/e8/20b5d438a45d00121890bdcc27f78f62
@@ -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);
+		}		
+	}
+
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/f1/e00edf7aa25d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/f1/e00edf7aa25d00121890bdcc27f78f62
new file mode 100644
index 0000000..d8bf43a
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/f1/e00edf7aa25d00121890bdcc27f78f62
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/f8/502d6e21a25d00121890bdcc27f78f62 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/f8/502d6e21a25d00121890bdcc27f78f62
new file mode 100644
index 0000000..3e026b4
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/f8/502d6e21a25d00121890bdcc27f78f62
@@ -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;
+	}
+}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/fc/303f33aafe5c00121f22d5fb8a5d79d9 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/fc/303f33aafe5c00121f22d5fb8a5d79d9
deleted file mode 100644
index 2ce26ef..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.history/fc/303f33aafe5c00121f22d5fb8a5d79d9
+++ /dev/null
@@ -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);
-	}
-
-}
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.indexes/e4/79/history.index b/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.indexes/e4/79/history.index
index 5748462..ed7221c 100644
Binary files a/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.indexes/e4/79/history.index and b/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.indexes/e4/79/history.index differ
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.indexes/e4/9d/history.index b/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.indexes/e4/9d/history.index
index e3c4e9c..ab0e5b6 100644
Binary files a/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.indexes/e4/9d/history.index and b/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.indexes/e4/9d/history.index differ
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.indexes/e4/history.index b/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.indexes/e4/history.index
index a9649f4..627a28e 100644
Binary files a/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.indexes/e4/history.index and b/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.indexes/e4/history.index differ
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.markers b/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.markers
index 7f8f7d9..c4f8549 100644
Binary files a/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.markers and b/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/.markers differ
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/org.eclipse.jdt.core/state.dat b/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/org.eclipse.jdt.core/state.dat
index 9dea24b..3b2b56f 100644
Binary files a/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/org.eclipse.jdt.core/state.dat and b/eShop/.metadata/.plugins/org.eclipse.core.resources/.projects/eShop/org.eclipse.jdt.core/state.dat differ
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.root/14.tree b/eShop/.metadata/.plugins/org.eclipse.core.resources/.root/14.tree
deleted file mode 100644
index 2efa847..0000000
Binary files a/eShop/.metadata/.plugins/org.eclipse.core.resources/.root/14.tree and /dev/null differ
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.root/16.tree b/eShop/.metadata/.plugins/org.eclipse.core.resources/.root/16.tree
new file mode 100644
index 0000000..a8df6b2
Binary files /dev/null and b/eShop/.metadata/.plugins/org.eclipse.core.resources/.root/16.tree differ
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.safetable/net.sourceforge.eclipseccase.14 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.safetable/net.sourceforge.eclipseccase.14
deleted file mode 100644
index 36a1d5b..0000000
--- a/eShop/.metadata/.plugins/org.eclipse.core.resources/.safetable/net.sourceforge.eclipseccase.14
+++ /dev/null
@@ -1,3 +0,0 @@
-#safe table
-#Sun Jan 13 13:28:17 EET 2013
-statecache=statecache14
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.safetable/net.sourceforge.eclipseccase.16 b/eShop/.metadata/.plugins/org.eclipse.core.resources/.safetable/net.sourceforge.eclipseccase.16
new file mode 100644
index 0000000..479fadc
--- /dev/null
+++ b/eShop/.metadata/.plugins/org.eclipse.core.resources/.safetable/net.sourceforge.eclipseccase.16
@@ -0,0 +1,3 @@
+#safe table
+#Sun Jan 13 21:27:29 EET 2013
+statecache=statecache16
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/eShop/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
index 4b012e9..afa3537 100644
Binary files a/eShop/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources and b/eShop/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources differ
diff --git a/eShop/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.usage.prefs b/eShop/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.usage.prefs
index 7b9b2b7..bae115a 100644
--- a/eShop/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.usage.prefs
+++ b/eShop/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.usage.prefs
@@ -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
diff --git a/eShop/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml b/eShop/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
index 745d486..6de030b 100644
--- a/eShop/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
+++ b/eShop/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
@@ -9,38 +9,38 @@
 <favorites/>
 </launchGroup>
 <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>
 <launchGroup id="org.hibernate.eclipse.launch.CodeGenerationLaunchGroup">
 <mruHistory/>
 <favorites/>
 </launchGroup>
 <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>
 <launchGroup id="org.eclipse.jem.proxy">
 <mruHistory/>
 <favorites/>
 </launchGroup>
 <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>
 </launchHistory>
diff --git a/eShop/.metadata/.plugins/org.eclipse.jdt.core/3057692050.index b/eShop/.metadata/.plugins/org.eclipse.jdt.core/3057692050.index
index 3cc28b3..8c12626 100644
Binary files a/eShop/.metadata/.plugins/org.eclipse.jdt.core/3057692050.index and b/eShop/.metadata/.plugins/org.eclipse.jdt.core/3057692050.index differ
diff --git a/eShop/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt b/eShop/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
index 0106491..994eaa1 100644
--- a/eShop/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
+++ b/eShop/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
@@ -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
diff --git a/eShop/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml b/eShop/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
index a4d7751..dc57bb4 100644
--- a/eShop/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
+++ b/eShop/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
@@ -19,6 +19,7 @@
 <fullyQualifiedTypeName name="md5_calculator.Md5hashcalc"/>
 <fullyQualifiedTypeName name="operatorUserSettingsWindow"/>
 <fullyQualifiedTypeName name="operatorUserLoginWindow"/>
 <fullyQualifiedTypeName name="databaseConnectWindow"/>
 <fullyQualifiedTypeName name="database_management.MySQLdbManager"/>
+<fullyQualifiedTypeName name="java.lang.Boolean"/>
 </qualifiedTypeNameHistroy>
diff --git a/eShop/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml b/eShop/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
index 6f83675..90ac5da 100644
--- a/eShop/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
+++ b/eShop/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml
@@ -1,7 +1,7 @@
 <?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"/>
 <perspectiveBar>
 <itemSize x="160"/>
@@ -13,20 +13,20 @@
 <coolItem id="com.swtdesigner.actionset" itemType="typeToolBarContribution" x="53" y="22"/>
 <coolItem id="com.togethersoft.selena.sapient.ui.launchActionSet" itemType="typeToolBarContribution" x="-1" y="-1"/>
 <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"/>
 <coolItem id="group.nav" itemType="typeGroupMarker"/>
 <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>
 <page aggregateWorkingSetId="Aggregate for window 1357825279510" focus="true" label="Workspace - Java">
 <editors>
@@ -37,21 +37,19 @@
 <part id="0"/>
 </presentation>
 </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"/>
 <child filterId="org.eclipse.jdt.ui.MembersView.ImportDeclarationFilter" isEnabled="false"/>
 <child filterId="_patternFilterId_*.txa*" isEnabled="true"/>
@@ -59,10 +57,12 @@
 <child filterId="org.eclipse.jdt.ui.MembersView.SyntheticMembersFilter" isEnabled="true"/>
 </xmlDefinedFilters>
 </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>
 <view id="org.eclipse.debug.ui.DebugView" partName="Debug">
 <viewState/>
@@ -118,11 +118,10 @@
 <org.eclipse.mylyn.tasklist.ui.views.tasklist.sortIndex>&#x0A;<sorter sortDirection="1" sortIndex="0"/>
 <sorter2 sortDirection="1" sortIndex="2"/>
 </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">
 <xmlDefinedFilters>
 <child filterId="org.eclipse.jdt.ui.PackageExplorer.FieldsFilter" isEnabled="false"/>
@@ -151,10 +150,11 @@
 <child filterId="org.eclipse.jdt.ui.PackageExplorer.PackageDeclarationFilter" isEnabled="true"/>
 </xmlDefinedFilters>
 </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"/>
 <child filterId="org.eclipse.jdt.ui.ProjectsView.NonSharedProjectsFilter" isEnabled="false"/>
 <child filterId="com.tssap.selena.dom.HideDesignRoot" isEnabled="true"/>
@@ -172,24 +172,20 @@
 <isTrackingSelection value="false"/>
 </viewState>
 </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"/>
 <visible IMemento.internal.id="org.eclipse.ui.ide.locationField"/>
 <visible IMemento.internal.id="org.eclipse.ui.ide.markerType"/>
 </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"/>
 <alwaysOnActionSet id="com.borland.gendoc.ui.actionSet"/>
 <alwaysOnActionSet id="com.borland.selena.internal.model.ide.searchActionSet"/>
@@ -287,10 +283,14 @@
 <perspective_action id="org.eclipse.debug.ui.DebugPerspective"/>
 <perspective_action id="org.eclipse.jdt.ui.JavaBrowsingPerspective"/>
 <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>
 <view id="com.codegear.jbuilder.view.TagsView" ratio="0.3"/>
 </fastViews>
@@ -308,18 +308,10 @@
 <fastViewBar fastViewLocation="131072" id="right" orientation="512" selectedTabId="org.eclipse.ui.views.ContentOutline" style="0">
 <fastViews>
 <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"/>
 </fastViews>
 </fastViewBar>
@@ -352,24 +344,29 @@
 <page content="org.eclipse.ui.internal.introview" label="LabelNotFound"/>
 <page content="org.eclipse.ui.cheatsheets.views.CheatSheetView" label="LabelNotFound"/>
 <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">
 <folder appearance="2" expanded="2">
 <page content="org.vssplugin.ui.checkout" label="LabelNotFound"/>
@@ -663,185 +660,122 @@
 </perspective>
 </perspectives>
 <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"/>
 </page>
 <workbenchWindowAdvisor/>
 <actionBarAdvisor/>
 <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"/>
 </trimArea>
 <trimArea IMemento.internal.id="1024">
@@ -850,39 +784,38 @@
 <trimItem IMemento.internal.id="org.eclipse.ui.internal.HeapStatus"/>
 <trimItem IMemento.internal.id="org.eclipse.ui.internal.progress.ProgressRegion"/>
 <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>
 <file factoryID="org.eclipse.jdt.ui.ClassFileEditorInputFactory" id="org.eclipse.jdt.ui.ClassFileEditor" name="EventDispatchThread.class" tooltip="java.awt.EventDispatchThread">
 <persistable org.eclipse.jdt.ui.ClassFileIdentifier="=eShop/C:\/JBuilder2008R2\/jre\/jre\/lib\/rt.jar&lt;java.awt(EventDispatchThread.class"/>
diff --git a/eShop/eShop/src/databaseConnectWindow.java b/eShop/eShop/src/databaseConnectWindow.java
index 363f0aa..8a7eabf 100644
--- a/eShop/eShop/src/databaseConnectWindow.java
+++ b/eShop/eShop/src/databaseConnectWindow.java
@@ -10,13 +10,13 @@ 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 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();
@@ -177,10 +177,12 @@ public class databaseConnectWindow extends JFrame {
 					"Ïðîáëåì ñ âðúçêàòà!", 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Ïðîâåðåòå èìàòå ëè ïðàâà çà òîâà!", 
diff --git a/eShop/eShop/src/database_management/MySQLdbManager.java b/eShop/eShop/src/database_management/MySQLdbManager.java
index 1624491..32453cc 100644
--- a/eShop/eShop/src/database_management/MySQLdbManager.java
+++ b/eShop/eShop/src/database_management/MySQLdbManager.java
@@ -123,11 +123,11 @@ public class MySQLdbManager {
 		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
+	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
 	 */
 	
 	public void setMySqlServerAddress(String mySqlServerAddress) {
 		this.mySqlServerAddress = mySqlServerAddress;
 	}
@@ -385,10 +385,51 @@ 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!!!
 	 * @param query String
 	 * @return ResultSet
@@ -427,10 +468,59 @@ 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
 	 */
 	
diff --git a/eShop/eShop/src/mainWindow.java b/eShop/eShop/src/mainWindow.java
index fc97f42..7d7722a 100644
--- a/eShop/eShop/src/mainWindow.java
+++ b/eShop/eShop/src/mainWindow.java
@@ -1,43 +1,34 @@
 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 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();
@@ -46,11 +37,10 @@ public class mainWindow extends JFrame {
 	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 mainWindowStatusPanelLoggedUserLogin = new JButton();
 	private final JButton mainWindowStatusPanelLoggedUserSettings = new JButton();
 
 	private final JLabel mainWindowStatusPanelSeparatorLabel = new JLabel();
@@ -58,10 +48,11 @@ public class mainWindow extends JFrame {
 	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[]) {
diff --git a/eShop/eShop/src/md5_calculator/Md5hashcalc.java b/eShop/eShop/src/md5_calculator/Md5hashcalc.java
index 7b28621..4f6a954 100644
--- a/eShop/eShop/src/md5_calculator/Md5hashcalc.java
+++ b/eShop/eShop/src/md5_calculator/Md5hashcalc.java
@@ -5,11 +5,10 @@
  */
 
 package md5_calculator;
 
 import java.security.MessageDigest;
-import javax.crypto.*;
 
 public class Md5hashcalc {
 	
 	public static String calculateMD5hash(String word) throws Exception {
 		
diff --git a/eShop/eShop/src/operatorUserLoginWindow.java b/eShop/eShop/src/operatorUserLoginWindow.java
index 3077813..76c564a 100644
--- a/eShop/eShop/src/operatorUserLoginWindow.java
+++ b/eShop/eShop/src/operatorUserLoginWindow.java
@@ -12,15 +12,14 @@ 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 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();
@@ -34,16 +33,16 @@ public class operatorUserLoginWindow extends JFrame {
 	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();
+	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
 	 */
 	public static void main(String args[]) {
@@ -172,19 +171,17 @@ public class operatorUserLoginWindow extends JFrame {
 				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);
 				}
 				
@@ -266,13 +263,12 @@ public class operatorUserLoginWindow extends JFrame {
 						
 						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() + "'");
+					ResultSet rs = databaseConnectWindow.dbPortal.executeParameterizedQuery(
+							"SELECT COUNT(*) FROM operators WHERE operator_username=?",	newUsernameTextField.getText());
 					
 					int usersCount = 0;
 					try {
 						
 						usersCount = rs.getInt(1);
@@ -281,14 +277,14 @@ 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);
 						}
 						else { //everything ok so login now
 							
diff --git a/eShop/eShop/src/operatorUserSettingsWindow.java b/eShop/eShop/src/operatorUserSettingsWindow.java
index 8506f72..25bacfd 100644
--- a/eShop/eShop/src/operatorUserSettingsWindow.java
+++ b/eShop/eShop/src/operatorUserSettingsWindow.java
@@ -10,30 +10,30 @@ 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 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 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
 	 */
 	public static void main(String args[]) {
@@ -205,17 +205,14 @@ public class operatorUserSettingsWindow extends JFrame {
 			
 			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.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;
 		}
 		
 		operatorFirstNameLastNameCombination = firstNameTextField.getText() + " " + lastNameTextField.getText();

Vulnerable code: 	private final JPanel panel = new JPanel();
		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(2, 1, 1, 2));
		mainWindowStatusPanelLoggedUserSettings.setText("Âõîä");
				databaseConnectWindow.dbPortal.disconnect();
				databaseConnectWindow.dbPortal.finallize();
		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
		//databaseConnectWindow.main(null);
			databaseConnectWindow.dbPortal.finallize();
			this.mainWindowStatusPanelSetEnabled(false);			
	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
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);
	}

}
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;
		}
	}

}
import javax.swing.JButton;

		EventQueue.invokeLater(new Runnable() {
		});
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				dbPortal.finallize();
					}					
					dbPortal.finallize();
			JOptionPane.showMessageDialog(this, "Ãðåøêà ïðè ñâúðçâàíåòî! Ïðîâåðåòå íàñòðîéêèòå è äàëè MySQL ñúðâúò å ñòàðòèðàí!", 
			dbPortal.finallize();
		if (dbPortal.executeNonQuery("CREATE DATABASE " + mysqlDatabaseNameTextField.getText()) != 1) {
			dbPortal.disconnect();
			dbPortal.finallize();
		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.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
			dbPortal.finallize();
			JOptionPane.showMessageDialog(this, "Íå ìîæå äà ñå ñúçäàäå òàáëèöà â áàçàòà äàííè!\nÏðîâåðåòå èìàòå ëè ïðàâà çà òîâà!",
					"Íå ìîæå äà ñå ñúçäàäå òàáëèöà!", JOptionPane.ERROR_MESSAGE);
		if (dbPortal.executeNonQuery("CREATE TABLE orders (order_id int NOT NULL AUTO_INCREMENT primary key," + 
				"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;
		}
		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;
		}
		if (dbPortal.executeNonQuery("CREATE TABLE order_details (order_detail_id int NOT NULL AUTO_INCREMENT primary key," + 
				"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;
	}

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() {
		
	}

}
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() {
		
		
	}

}
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));		
	}

}
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);
		//
	}

}
import java.awt.FlowLayout;
import java.awt.GridLayout;
	private final JPanel panel = new JPanel();
		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(2, 1, 1, 2));
		mainWindowStatusPanelLoggedUserSettings.setText("Âõîä");
				databaseConnectWindow.dbPortal.disconnect();
				databaseConnectWindow.dbPortal.finallize();
		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
		//databaseConnectWindow.main(null);
			databaseConnectWindow.dbPortal.finallize();
			this.mainWindowStatusPanelSetEnabled(false);			
	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
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);			
		}
	}
	
}
import javax.swing.JButton;

		EventQueue.invokeLater(new Runnable() {
		});
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				dbPortal.finallize();
					
					dbPortal.finallize();
		dbPortal.setMySqlActiveDatabase("");
		
			dbPortal.finallize();
				"operator_username nvarchar(20) NOT NULL, operator_password nvarchar(20) NOT NULL," + 
	}

		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(2, 1, 1, 2));
		mainWindowStatusPanelLoggedUserSettings.setText("Âõîä");
				databaseConnectWindow.dbPortal.disconnect();
				databaseConnectWindow.dbPortal.finallize();
		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
		//databaseConnectWindow.main(null);
			databaseConnectWindow.dbPortal.finallize();
			this.mainWindowStatusPanelSetEnabled(false);			
	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
import javax.swing.JButton;

		EventQueue.invokeLater(new Runnable() {
		});
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				dbPortal.finallize();
					}					
					dbPortal.finallize();
			JOptionPane.showMessageDialog(this, "Ãðåøêà ïðè ñâúðçâàíåòî! Ïðîâåðåòå íàñòðîéêèòå è äàëè MySQL ñúðâúò å ñòàðòèðàí!", 
			dbPortal.finallize();
		if (dbPortal.executeNonQuery("CREATE DATABASE " + mysqlDatabaseNameTextField.getText()) != 1) {
					"Íå ìîæå äà ñå ñúçäàäå ÁÄ!", JOptionPane.ERROR_MESSAGE);			
			dbPortal.disconnect();
			dbPortal.finallize();
		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.finallize();
		if (dbPortal.executeNonQuery("CREATE TABLE orders (order_id int NOT NULL AUTO_INCREMENT primary key," + 
				"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;
		}
		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;
		}
		if (dbPortal.executeNonQuery("CREATE TABLE order_details (order_detail_id int NOT NULL AUTO_INCREMENT primary key," + 
				"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;
	}

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) {			
		}		
	}

}
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)
	}
	
}
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) {
			
		}		
	}

}
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);
	}

}
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);
	}

}
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)
	}
	
}
import javax.swing.JButton;

		EventQueue.invokeLater(new Runnable() {
		});
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				dbPortal.finallize();
					}					
					dbPortal.finallize();
		dbPortal.setMySqlActiveDatabase("");
		
			dbPortal.finallize();
				"operator_username nvarchar(20) NOT NULL, operator_password nvarchar(20) NOT NULL," + 
	}

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);			
		}
	}
	
}
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) {
	}
	
}
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);
		}
	}
	
}
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);
		}
	}
	
}
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) {			
		}		
	}

}
import java.awt.FlowLayout;
	private final JPanel panel = new JPanel();
		mainWindowStatusPanel.add(mainWindowStatusPanelLoggedUserSettings, new CellConstraints(2, 1, 1, 2));
		mainWindowStatusPanelLoggedUserSettings.setText("Âõîä");
				databaseConnectWindow.dbPortal.disconnect();
				databaseConnectWindow.dbPortal.finallize();
		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));		
		//databaseConnectWindow.main(null);
			databaseConnectWindow.dbPortal.finallize();
			this.mainWindowStatusPanelSetEnabled(false);			
	protected void mainWindowStatusPanelLoggedUserSettings_actionPerformed(ActionEvent e) {
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) {
			
		}
	}
	
}
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();
		}
		
	}

}
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);
		}
	}
	
}
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);
	}

}
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);
	}

}
#safe table
#Sun Jan 13 13:28:17 EET 2013
statecache=statecache14
#Sun Jan 13 13:28:20 EET 2013
org.eclipse.mylyn.monitor.ui.events.observed=5789
<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;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;operatorUserSettingsWindow.launch&quot;/&gt;&#13;&#10;"/>
1164253737.index
2022660347.index
492272455.index
<workbench progressCount="45" version="2.0">
<coolItem id="org.eclipse.ui.edit.text.actionSet.presentation" itemType="typeToolBarContribution" x="84" y="22"/>
<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"/>
<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"/>
<view id="org.eclipse.jdt.ui.JavadocView" partName="Javadoc"/>
<view id="org.eclipse.ui.views.TaskList" partName="Tasks"/>
<view id="org.eclipse.jdt.ui.SourceView" partName="Declaration"/>
<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"/>
<perspectives activePart="org.eclipse.jdt.ui.CompilationUnitEditor" activePerspective="org.eclipse.jdt.ui.JavaPerspective">
<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>
<info part="org.eclipse.ui.editorss" ratio="0.11299001" ratioLeft="147" ratioRight="1154" relationship="2" relative="left"/>
<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"/>
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory"/>
<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"/>
<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="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="0">
<position info="not_deleted" x="11511" y="0"/>
<item historyLabel="MySQLdbManager.java" index="3">
<position info="not_deleted" x="82" y="0"/>
<item historyLabel="mainWindow.java" index="0">
<position info="not_deleted" x="11511" y="0"/>
<item historyLabel="MySQLdbManager.java" index="4">
<position info="not_deleted" x="4" y="0"/>
<item historyLabel="mainWindow.java" index="0">
<item historyLabel="operatorUserLoginWindow.java" index="5">
<item historyLabel="mainWindow.java" index="0">
<item historyLabel="databaseConnectWindow.java" index="6">
<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="MySQLdbManager.java" index="7">
<position info="not_deleted" x="38" y="0"/>
<item historyLabel="mainWindow.java" index="0">
<position info="not_deleted" x="13978" y="0"/>
<item historyLabel="MySQLdbManager.java" index="7">
<position info="not_deleted" x="680" y="0"/>
<item historyLabel="mainWindow.java" index="0">
<item historyLabel="MySQLdbManager.java" index="7">
<position info="not_deleted" x="11408" y="0"/>
<item historyLabel="mainWindow.java" index="0">
<position info="not_deleted" x="13824" y="0"/>
<item historyLabel="databaseConnectWindow.java" index="8">
<position info="not_deleted" x="4577" y="8"/>
<item historyLabel="databaseConnectWindow.java" index="8">
<position info="not_deleted" x="5302" y="8"/>
<item historyLabel="databaseConnectWindow.java" index="8">
<position info="not_deleted" x="4581" y="0"/>
<item historyLabel="databaseConnectWindow.java" index="8">
<position info="not_deleted" x="5881" y="0"/>
<item historyLabel="databaseConnectWindow.java" index="8">
<position info="not_deleted" x="6148" y="8"/>
<item historyLabel="databaseConnectWindow.java" index="8">
<position info="not_deleted" x="6986" y="0"/>
<item historyLabel="mainWindow.java" index="0">
<position info="not_deleted" x="9698" y="0"/>
<item historyLabel="mainWindow.java" index="0">
<position info="not_deleted" x="11493" y="0"/>
<item historyLabel="databaseConnectWindow.java" index="8">
<position info="not_deleted" x="4577" y="8"/>
<item historyLabel="MySQLdbManager.java" index="7">
<position info="not_deleted" x="11076" y="0"/>
<item historyLabel="databaseConnectWindow.java" index="8">
<position info="not_deleted" x="4081" y="0"/>
<item historyLabel="mainWindow.java" index="0">
<position info="not_deleted" x="11493" y="0"/>
<item historyLabel="databaseConnectWindow.java" index="8">
<position info="not_deleted" x="4081" y="0"/>
<item active="true" historyLabel="MySQLdbManager.java" index="7">
<position info="not_deleted" x="11076" y="0"/>
<trimItem IMemento.internal.id="left"/>
<trimItem IMemento.internal.id="org.eclipse.ui.editorss"/>
<trimItem IMemento.internal.id="bottom"/>
<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="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="operatorUserLogin.java" tooltip="eShop/src/operatorUserLogin.java">
<persistable path="/eShop/src/operatorUserLogin.java"/>
import md5_calculator.Md5hashcalc;
	 * @param mySqlServerAddress String MySQL server IP address ot HOSTNAME
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.BoxLayout;
import javax.swing.JComponent;
import javax.swing.JSeparator;
import javax.swing.SpringLayout;
import javax.swing.border.BevelBorder;
import org.jdesktop.layout.GroupLayout;
import org.jdesktop.layout.LayoutStyle;
import database_management.MySQLdbManager;
	private final JPanel panel = new JPanel();
import javax.crypto.*;

import database_management.MySQLdbManager;
	public static String loggedUserNames = "";
	private final JLabel newPasswordAgainLabel = new JLabel();
	private final JPasswordField newPasswordPasswordAgainField = new JPasswordField();
				//FIXME prone to sql injection
				
					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) + "'");
					//FIXME prone to sql injection
					ResultSet rs = databaseConnectWindow.dbPortal.executeQuery("SELECT COUNT(*) FROM operators WHERE operator_username='" +
							newUsernameTextField.getText() + "'");
						//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) {
import database_management.MySQLdbManager;
	private final JPasswordField passwordAgainPasswordField = new JPasswordField();
	public static String operatorFirstNameLastNameCombination = "";
	private final JButton deleteOperator = new JButton();
		//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) {
			
Fixed code: !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)
<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>
/**
 * <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;
	}
}
import java.awt.Insets;

	private final JButton mainWindowStatusPanelLoggedUserLogin = 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();
		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("Óïðàâëåíèå íà ïîðú÷êè");
		
		HelpAbout.addActionListener(new HelpAboutActionListener());
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
		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.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("Èçõîä");
	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			mainWindowStatusPanelLoggedUserLogin_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);
		}
	}
				databaseConnectWindow.dbPortal.finalize();
		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
			databaseConnectWindow.dbPortal.finalize();
			this.mainWindowStatusPanelSetEnabled(false);	
			this.mainWindowStatusPanelLoggedUserLabel.setText("Ïîòðåáèòåë: ");
			operatorUserLoginWindow.loggedUserId = -1;
	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
		
	////////////////////////////////////////////////////////////////////////
	
	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...
	}
	
	
	
	
/**
 * <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;
	}
}
import javax.swing.WindowConstants;
import javax.swing.JButton;
import md5_calculator.Md5hashcalc;
		EventQueue.invokeLater(new Runnable() { 
		});		
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

				dbPortal.finalize();
					}
					dbPortal.finalize();
			JOptionPane.showMessageDialog(this, "Ãðåøêà ïðè ñâúðçâàíåòî (1)! Ïðîâåðåòå íàñòðîéêèòå è äàëè MySQL ñúðâúò å ñòàðòèðàí!", 
			dbPortal.finalize();
		//FIXME prone??? to sql injection maybe??
		
		if (dbPortal.executeNonQuery("CREATE DATABASE " + mysqlDatabaseNameTextField.getText() + " COLLATE utf8_general_ci") != 1) {
			dbPortal.finalize();
		dbPortal.setMySqlActiveDatabase(mysqlDatabaseNameTextField.getText());
		dbPortal.disconnect();
		
		if (dbPortal.connect() == false) { //false positive for database creation
			dbPortal.setMySqlActiveDatabase("");
			
			if (dbPortal.connect()) {
				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
				dbPortal.disconnect();
			}			
			
			JOptionPane.showMessageDialog(this, "Ãðåøêà ïðè ñâúðçâàíåòî (2)! Ïðîâåðåòå íàñòðîéêèòå è äàëè MySQL ñúðâúò å ñòàðòèðàí!", 
					"Ïðîáëåì ñ âðúçêàòà!", JOptionPane.ERROR_MESSAGE);			
			dbPortal.finalize();
		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," + 
				"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," + 
				"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);
		}*/
	}	
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);
		}		
	}

}
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;
	}

}
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...
	}
	
	
	
	
}
/**
 * <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;
	}
}
import java.awt.Insets;

	private final JButton mainWindowStatusPanelLoggedUserLogin = 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();
		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("Óïðàâëåíèå íà ïîðú÷êè");
		
		HelpAbout.addActionListener(new HelpAboutActionListener());
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
		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.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("Èçõîä");
	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			mainWindowStatusPanelLoggedUserLogin_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);
		}
	}
				databaseConnectWindow.dbPortal.finalize();
		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
			databaseConnectWindow.dbPortal.finalize();
			this.mainWindowStatusPanelSetEnabled(false);	
			this.mainWindowStatusPanelLoggedUserLabel.setText("Ïîòðåáèòåë: ");
			operatorUserLoginWindow.loggedUserId = -1;
	////////////////////////////////////////////////////////////////////////
	
	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText("Ïîòðåáèòåë: " + operatorUserLoginWindow.loggedUserNames);
				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...
	}
	
	
	
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;
	}	
}
import javax.swing.WindowConstants;
import javax.swing.JButton;
import md5_calculator.Md5hashcalc;
		EventQueue.invokeLater(new Runnable() { 
		});		
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

				dbPortal.finalize();
					dbPortal.finalize();
			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();
				"operator_username nvarchar(20) NOT NULL, operator_password nvarchar(64) NOT NULL," + 
		/* 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);
		}*/
		
	}	
import java.awt.Insets;
import database_management.MySQLdbManager;

	private final JButton mainWindowStatusPanelLoggedUserLogin = 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();
		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("Óïðàâëåíèå íà ïîðú÷êè");
		
		HelpAbout.addActionListener(new HelpAboutActionListener());
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
		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.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("Èçõîä");
	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			mainWindowStatusPanelLoggedUserLogin_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);
		}
	}
				databaseConnectWindow.dbPortal.finalize();
		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
			databaseConnectWindow.dbPortal.finalize();
			this.mainWindowStatusPanelSetEnabled(false);	
			this.mainWindowStatusPanelLoggedUserLabel.setText("Ïîòðåáèòåë: ");
			operatorUserLoginWindow.loggedUserId = -1;
	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText("Ïîòðåáèòåë: " + operatorUserLoginWindow.loggedUserNames);
				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...
	}
	
	
	
	
/**
 * <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;
	}
}
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;
	}	
}
import javax.swing.WindowConstants;
import javax.swing.JButton;
	private static final long serialVersionUID = 3002L;
		EventQueue.invokeLater(new Runnable() { 
		});		
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

				dbPortal.finalize();
					}
					dbPortal.finalize();
			JOptionPane.showMessageDialog(this, "Ãðåøêà ïðè ñâúðçâàíåòî (1)! Ïðîâåðåòå íàñòðîéêèòå è äàëè MySQL ñúðâúò å ñòàðòèðàí!", 
			dbPortal.finalize();
		//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.ERROR_MESSAGE);
		dbPortal.setMySqlActiveDatabase(mysqlDatabaseNameTextField.getText());
		dbPortal.disconnect();
		
		if (dbPortal.connect() == false) { //false positive for database creation
			dbPortal.setMySqlActiveDatabase("");
			
			if (dbPortal.connect()) {
				dbPortal.executeNonQuery("DROP DATABASE " + mysqlDatabaseNameTextField.getText());
				dbPortal.disconnect();
			}			
			
			JOptionPane.showMessageDialog(this, "Ãðåøêà ïðè ñâúðçâàíåòî (2)! Ïðîâåðåòå íàñòðîéêèòå è äàëè MySQL ñúðâúò å ñòàðòèðàí!", 
					"Ïðîáëåì ñ âðúçêàòà!", JOptionPane.ERROR_MESSAGE);			
			dbPortal.finalize();
		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," + 
				"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," + 
				"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);
		}*/
	}	
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);
		}		
	}

}
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...
	}
	
	
	
	
}
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;
	}

}
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...
	}
	
	
	
	
}
/**
 * <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;
	}
}
/**
 * <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;
	}
}
/*
 * 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;
	}
}
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);
		}		
	}

}
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);
		}		
	}

}
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;
	}

}
/**
 * <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;
	}
}
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...
	}
	
	
	
	
}
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...
	}
	
	
	
	
}
/**
 * <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;
	}
}
import javax.swing.WindowConstants;
import javax.swing.JButton;
		EventQueue.invokeLater(new Runnable() { 
		});		
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

				dbPortal.finalize();
					}
					dbPortal.finalize();
			JOptionPane.showMessageDialog(this, "Ãðåøêà ïðè ñâúðçâàíåòî (1)! Ïðîâåðåòå íàñòðîéêèòå è äàëè MySQL ñúðâúò å ñòàðòèðàí!", 
					"Ïðîáëåì ñ âðúçêàòà!", JOptionPane.ERROR_MESSAGE);			
			dbPortal.finalize();
		//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;
		}
				"operator_username nvarchar(20) NOT NULL, operator_password nvarchar(64) NOT NULL," + 
		/* 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);
		}*/
		
	}	
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;
	}

}
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);
		}		
	}

}
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;
	}

}
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;
	}	
}
/**
 * <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;
	}
}
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...
	}
	
	
	
	
}
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);
		}		
	}

}
/**
 * <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;
	}
}
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);
		}		
	}

}
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);
		}		
	}

}
import java.awt.Insets;

	private final JButton mainWindowStatusPanelLoggedUserLogin = 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();
		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("Óïðàâëåíèå íà ïîðú÷êè");
		
		HelpAbout.addActionListener(new HelpAboutActionListener());
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
		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.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("Èçõîä");
	private class MainWindowStatusPanelLoggedUserLoginActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			mainWindowStatusPanelLoggedUserLogin_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);
		}
	}
				databaseConnectWindow.dbPortal.finalize();
		this.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
			databaseConnectWindow.dbPortal.finalize();
			this.mainWindowStatusPanelSetEnabled(false);	
			this.mainWindowStatusPanelLoggedUserLabel.setText("Ïîòðåáèòåë: ");
			operatorUserLoginWindow.loggedUserId = -1;
	protected void mainWindowStatusPanelLoggedUserLogin_actionPerformed(ActionEvent e) {
				mainWindowPointer.mainWindowStatusPanelLoggedUserLabel.setText("Ïîòðåáèòåë: " + operatorUserLoginWindow.loggedUserNames);
				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...
	}
	
	
	
	
/**
 * <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;
	}
}
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);
		}		
	}

}
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...
	}
	
	
	
	
}
/**
 * <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;
	}
}
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...
	}
	
	
	
	
}
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;
	}

}
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;
	}

}
/**
 * <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;
	}
}
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...
	}
	
	
	
	
}
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;
	}

}
/**
 * <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;
	}
}
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);
		}		
	}

}
/**
 * <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;
	}
}
/**
 * <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;
	}
}
#safe table
#Sun Jan 13 21:27:29 EET 2013
statecache=statecache16
#Sun Jan 13 21:27:31 EET 2013
org.eclipse.mylyn.monitor.ui.events.observed=6747
<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;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;operatorUserSettingsWindow.launch&quot;/&gt;&#13;&#10;"/>
2022660347.index
1164253737.index
492272455.index
<fullyQualifiedTypeName name="java.lang.Boolean"/>
<workbench progressCount="22" version="2.0">
<coolItem id="org.eclipse.ui.edit.text.actionSet.presentation" itemType="typeToolBarContribution" x="107" 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"/>
<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"/>
<view id="org.eclipse.jdt.ui.JavadocView" partName="Javadoc"/>
<view id="org.eclipse.ui.views.TaskList" partName="Tasks"/>
<view id="org.eclipse.jdt.ui.SourceView" partName="Declaration"/>
<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"/>
<perspectives activePart="com.swtdesigner.editors.MultiPageEditor" activePerspective="org.eclipse.jdt.ui.JavaPerspective">
<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"/>
<info part="org.eclipse.ui.editorss" ratio="0.21521907" ratioLeft="280" ratioRight="1021" relationship="2" relative="left"/>
<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"/>
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">
<part id="0"/>
<part id="1"/>
<part id="2"/>
<part id="3"/>
</presentation>
<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/operatorUserLoginWindow.java"/>
<editor factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="com.swtdesigner.editors.MultiPageEditor" path="/eShop/src/operatorUserSettingsWindow.java"/>
<item historyLabel="MySQLdbManager.java" index="0">
<position info="not_deleted" x="12869" y="0"/>
<item historyLabel="mainWindow.java" index="1">
<position/>
<item historyLabel="databaseConnectWindow.java" index="2">
<position/>
<item historyLabel="mainWindow.java" index="1">
<position/>
<item historyLabel="databaseConnectWindow.java" index="2">
<position/>
<item historyLabel="MySQLdbManager.java" index="0">
<position info="not_deleted" x="12869" y="0"/>
<item historyLabel="databaseConnectWindow.java" index="2">
<item historyLabel="mainWindow.java" index="1">
<item historyLabel="operatorUserLoginWindow.java" index="3">
<item historyLabel="operatorUserLoginWindow.java" index="3">
<item historyLabel="mainWindow.java" index="1">
<position/>
<item historyLabel="operatorUserLoginWindow.java" index="3">
<position/>
<item historyLabel="mainWindow.java" index="1">
<position/>
<item historyLabel="operatorUserSettingsWindow.java" index="4">
<position/>
<item historyLabel="operatorUserLoginWindow.java" index="3">
<item historyLabel="operatorUserSettingsWindow.java" index="4">
<position/>
<item historyLabel="mainWindow.java" index="1">
<position/>
<item historyLabel="databaseConnectWindow.java" index="2">
<position/>
<item historyLabel="mainWindow.java" index="1">
<position info="not_deleted" x="13540" y="0"/>
<item historyLabel="operatorUserSettingsWindow.java" index="4">
<position/>
<item historyLabel="mainWindow.java" index="1">
<position info="not_deleted" x="13540" y="0"/>
<item historyLabel="operatorUserSettingsWindow.java" index="4">
<position info="not_deleted" x="6750" y="0"/>
<item historyLabel="mainWindow.java" index="1">
<position info="not_deleted" x="13797" y="0"/>
<item historyLabel="operatorUserSettingsWindow.java" index="4">
<position info="not_deleted" x="6633" y="0"/>
<item historyLabel="mainWindow.java" index="1">
<position info="not_deleted" x="13797" y="0"/>
<item historyLabel="operatorUserSettingsWindow.java" index="4">
<position info="not_deleted" x="6633" y="0"/>
<item historyLabel="mainWindow.java" index="1">
<position info="not_deleted" x="13797" y="0"/>
<item historyLabel="databaseConnectWindow.java" index="2">
<position info="not_deleted" x="5983" y="0"/>
<item historyLabel="mainWindow.java" index="1">
<position info="not_deleted" x="13797" y="0"/>
<item historyLabel="databaseConnectWindow.java" index="2">
<position info="not_deleted" x="5983" y="0"/>
<item active="true" historyLabel="mainWindow.java" index="1">
<position info="not_deleted" x="13797" y="0"/>
<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="org.eclipse.jdt.ui.CompilationUnitEditor" name="MySQLdbManager.java" tooltip="eShop/src/database_management/MySQLdbManager.java">
<persistable path="/eShop/src/database_management/MySQLdbManager.java"/>
<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>
	private static final long serialVersionUID = 3002L;
		//FIXME prone??? to sql injection maybe??
		
	 * @param mySqlServerAddress String MySQL server IP address or HOSTNAME
	/**
	 * 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 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;		
	}
	
	private static final long serialVersionUID = 3001L;
	
	private static final long serialVersionUID = 3003L;
	private final JLabel newPasswordAgainLabel = new JLabel();
	private final JPasswordField newPasswordPasswordAgainField = new JPasswordField();
	public static String loggedUserNames = "";	
					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));							
					ResultSet rs = databaseConnectWindow.dbPortal.executeParameterizedQuery(
							"SELECT COUNT(*) FROM operators WHERE operator_username=?",	newUsernameTextField.getText());
						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) {
	private static final long serialVersionUID = 3004L;
	private final JButton deleteOperator = new JButton();
	private final JPasswordField passwordAgainPasswordField = new JPasswordField();	
	public static String operatorFirstNameLastNameCombination = "";	
		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) {