Restore
This commit is contained in:
BIN
Labs/Lab12/Lab 12 Requirements.pdf
Normal file
BIN
Labs/Lab12/Lab 12 Requirements.pdf
Normal file
Binary file not shown.
0
Labs/Lab12/Lab12_2230026071/.metadata/.lock
Normal file
0
Labs/Lab12/Lab12_2230026071/.metadata/.lock
Normal file
595
Labs/Lab12/Lab12_2230026071/.metadata/.log
Normal file
595
Labs/Lab12/Lab12_2230026071/.metadata/.log
Normal file
@@ -0,0 +1,595 @@
|
||||
!SESSION 2023-05-11 09:36:16.836 -----------------------------------------------
|
||||
eclipse.buildId=4.24.0.I20220607-0700
|
||||
java.version=17.0.3
|
||||
java.vendor=Eclipse Adoptium
|
||||
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
|
||||
Framework arguments: -product org.eclipse.epp.package.jee.product -product org.eclipse.epp.package.jee.product
|
||||
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product -data C:\Users\s230026071\Desktop\Lab12_2230026071 -product org.eclipse.epp.package.jee.product
|
||||
|
||||
!ENTRY org.eclipse.jface 2 0 2023-05-11 09:36:20.154
|
||||
!MESSAGE Keybinding conflicts occurred. They may interfere with normal accelerator operation.
|
||||
!SUBENTRY 1 org.eclipse.jface 2 0 2023-05-11 09:36:20.154
|
||||
!MESSAGE A conflict occurred for CTRL+SHIFT+T:
|
||||
Binding(CTRL+SHIFT+T,
|
||||
ParameterizedCommand(Command(org.eclipse.jdt.ui.navigate.open.type,Open Type,
|
||||
Open a type in a Java editor,
|
||||
Category(org.eclipse.ui.category.navigate,Navigate,null,true),
|
||||
org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@4c81e7c2,
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
Binding(CTRL+SHIFT+T,
|
||||
ParameterizedCommand(Command(org.eclipse.lsp4e.symbolinworkspace,Go to Symbol in Workspace,
|
||||
,
|
||||
Category(org.eclipse.lsp4e.category,Language Servers,null,true),
|
||||
org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@4fe8e318,
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
!SUBENTRY 1 org.eclipse.jface 2 0 2023-05-11 09:36:20.154
|
||||
!MESSAGE A conflict occurred for ALT+SHIFT+R:
|
||||
Binding(ALT+SHIFT+R,
|
||||
ParameterizedCommand(Command(org.eclipse.jdt.ui.edit.text.java.rename.element,Rename - Refactoring ,
|
||||
Rename the selected element,
|
||||
Category(org.eclipse.jdt.ui.category.refactoring,Refactor - Java,Java Refactoring Actions,true),
|
||||
org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@21e15093,
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
Binding(ALT+SHIFT+R,
|
||||
ParameterizedCommand(Command(org.eclipse.ui.edit.rename,Rename,
|
||||
Rename the selected item,
|
||||
Category(org.eclipse.ui.category.file,File,null,true),
|
||||
org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@62cf873a,
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
|
||||
!ENTRY org.eclipse.egit.ui 2 0 2023-05-11 09:36:23.818
|
||||
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
|
||||
user global configuration and to define the default location to store repositories: 'C:\Users\s230026071'. If this is
|
||||
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
|
||||
EGit might behave differently since they see different configuration options.
|
||||
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.
|
||||
!SESSION 2023-05-11 12:11:28.956 -----------------------------------------------
|
||||
eclipse.buildId=4.26.0.20221201-1200
|
||||
java.version=17.0.6
|
||||
java.vendor=Eclipse Adoptium
|
||||
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
|
||||
Framework arguments: -product org.eclipse.epp.package.jee.product -product org.eclipse.epp.package.jee.product
|
||||
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product -data E:\JAVA 2023\Lab12_2230026071 -product org.eclipse.epp.package.jee.product
|
||||
|
||||
!ENTRY ch.qos.logback.classic 1 0 2023-05-11 12:11:29.895
|
||||
!MESSAGE Activated before the state location was initialized. Retry after the state location is initialized.
|
||||
|
||||
!ENTRY org.eclipse.core.resources 4 567 2023-05-11 12:11:30.357
|
||||
!MESSAGE Workspace restored, but some problems occurred.
|
||||
!SUBENTRY 1 org.eclipse.core.resources 4 567 2023-05-11 12:11:30.357
|
||||
!MESSAGE Could not read metadata for '.org.eclipse.egit.core.cmp'.
|
||||
!STACK 1
|
||||
org.eclipse.core.internal.resources.ResourceException(/.org.eclipse.egit.core.cmp)[567]: java.lang.Exception: The project description file (.project) for '.org.eclipse.egit.core.cmp' is missing. This file contains important information about the project. The project will not function properly until this file is restored.
|
||||
at org.eclipse.core.internal.resources.ResourceException.provideStackTrace(ResourceException.java:42)
|
||||
at org.eclipse.core.internal.resources.ResourceException.<init>(ResourceException.java:38)
|
||||
at org.eclipse.core.internal.localstore.FileSystemResourceManager.read(FileSystemResourceManager.java:908)
|
||||
at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:895)
|
||||
at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:875)
|
||||
at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:731)
|
||||
at org.eclipse.core.internal.resources.SaveManager.startup(SaveManager.java:1585)
|
||||
at org.eclipse.core.internal.resources.Workspace.startup(Workspace.java:2547)
|
||||
at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:2252)
|
||||
at org.eclipse.core.resources.ResourcesPlugin$WorkspaceInitCustomizer.addingService(ResourcesPlugin.java:571)
|
||||
at org.eclipse.core.resources.ResourcesPlugin$WorkspaceInitCustomizer.addingService(ResourcesPlugin.java:1)
|
||||
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:943)
|
||||
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1)
|
||||
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
|
||||
at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183)
|
||||
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:321)
|
||||
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:264)
|
||||
at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:545)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:818)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:1)
|
||||
at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:810)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:767)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1032)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:371)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:605)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:468)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:513)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:570)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397)
|
||||
at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:41)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:496)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
|
||||
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
|
||||
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:153)
|
||||
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
|
||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
|
||||
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
|
||||
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
|
||||
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
|
||||
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
|
||||
!SUBENTRY 2 org.eclipse.core.resources 4 567 2023-05-11 12:11:30.357
|
||||
!MESSAGE The project description file (.project) for '.org.eclipse.egit.core.cmp' is missing. This file contains important information about the project. The project will not function properly until this file is restored.
|
||||
!STACK 0
|
||||
java.lang.Exception: The project description file (.project) for '.org.eclipse.egit.core.cmp' is missing. This file contains important information about the project. The project will not function properly until this file is restored.
|
||||
at org.eclipse.core.internal.resources.ResourceException.provideStackTrace(ResourceException.java:42)
|
||||
at org.eclipse.core.internal.resources.ResourceException.<init>(ResourceException.java:38)
|
||||
at org.eclipse.core.internal.localstore.FileSystemResourceManager.read(FileSystemResourceManager.java:908)
|
||||
at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:895)
|
||||
at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:875)
|
||||
at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:731)
|
||||
at org.eclipse.core.internal.resources.SaveManager.startup(SaveManager.java:1585)
|
||||
at org.eclipse.core.internal.resources.Workspace.startup(Workspace.java:2547)
|
||||
at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:2252)
|
||||
at org.eclipse.core.resources.ResourcesPlugin$WorkspaceInitCustomizer.addingService(ResourcesPlugin.java:571)
|
||||
at org.eclipse.core.resources.ResourcesPlugin$WorkspaceInitCustomizer.addingService(ResourcesPlugin.java:1)
|
||||
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:943)
|
||||
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1)
|
||||
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
|
||||
at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183)
|
||||
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:321)
|
||||
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:264)
|
||||
at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:545)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:818)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:1)
|
||||
at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:810)
|
||||
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:767)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1032)
|
||||
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:371)
|
||||
at org.eclipse.osgi.container.Module.doStart(Module.java:605)
|
||||
at org.eclipse.osgi.container.Module.start(Module.java:468)
|
||||
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:513)
|
||||
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117)
|
||||
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:570)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397)
|
||||
at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:41)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:496)
|
||||
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
|
||||
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
|
||||
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
|
||||
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:153)
|
||||
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
|
||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
|
||||
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
|
||||
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
|
||||
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
|
||||
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
|
||||
|
||||
!ENTRY ch.qos.logback.classic 1 0 2023-05-11 12:11:30.768
|
||||
!MESSAGE Logback config file: E:\JAVA 2023\Lab12_2230026071\.metadata\.plugins\org.eclipse.m2e.logback\logback.2.1.0.20221015-0744.xml
|
||||
|
||||
!ENTRY org.eclipse.jface 2 0 2023-05-11 12:11:32.787
|
||||
!MESSAGE Keybinding conflicts occurred. They may interfere with normal accelerator operation.
|
||||
!SUBENTRY 1 org.eclipse.jface 2 0 2023-05-11 12:11:32.787
|
||||
!MESSAGE A conflict occurred for CTRL+SHIFT+T:
|
||||
Binding(CTRL+SHIFT+T,
|
||||
ParameterizedCommand(Command(org.eclipse.jdt.ui.navigate.open.type,Open Type,
|
||||
Open a type in a Java editor,
|
||||
Category(org.eclipse.ui.category.navigate,Navigate,null,true),
|
||||
WorkbenchHandlerServiceHandler("org.eclipse.jdt.ui.navigate.open.type"),
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
Binding(CTRL+SHIFT+T,
|
||||
ParameterizedCommand(Command(org.eclipse.lsp4e.symbolinworkspace,Go to Symbol in Workspace,
|
||||
,
|
||||
Category(org.eclipse.lsp4e.category,Language Servers,null,true),
|
||||
WorkbenchHandlerServiceHandler("org.eclipse.lsp4e.symbolinworkspace"),
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
!SUBENTRY 1 org.eclipse.jface 2 0 2023-05-11 12:11:32.787
|
||||
!MESSAGE A conflict occurred for ALT+SHIFT+R:
|
||||
Binding(ALT+SHIFT+R,
|
||||
ParameterizedCommand(Command(org.eclipse.jdt.ui.edit.text.java.rename.element,Rename - Refactoring ,
|
||||
Rename the selected element,
|
||||
Category(org.eclipse.jdt.ui.category.refactoring,Refactor - Java,Java Refactoring Actions,true),
|
||||
WorkbenchHandlerServiceHandler("org.eclipse.jdt.ui.edit.text.java.rename.element"),
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
Binding(ALT+SHIFT+R,
|
||||
ParameterizedCommand(Command(org.eclipse.ui.edit.rename,Rename,
|
||||
Rename the selected item,
|
||||
Category(org.eclipse.ui.category.file,File,null,true),
|
||||
WorkbenchHandlerServiceHandler("org.eclipse.ui.edit.rename"),
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
|
||||
!ENTRY org.eclipse.egit.ui 2 0 2023-05-11 12:11:37.471
|
||||
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
|
||||
user global configuration and to define the default location to store repositories: 'C:\Users\Danie'. If this is
|
||||
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
|
||||
EGit might behave differently since they see different configuration options.
|
||||
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.
|
||||
|
||||
!ENTRY org.eclipse.jdt.core 4 4 2023-05-11 12:11:38.957
|
||||
!MESSAGE Exception while reading last build state for: P/Question1
|
||||
!STACK 1
|
||||
org.eclipse.core.runtime.CoreException: Error reading last build state for project Question1
|
||||
at org.eclipse.jdt.internal.core.JavaModelManager.readStateTimed(JavaModelManager.java:4125)
|
||||
at org.eclipse.jdt.internal.core.JavaModelManager.readState(JavaModelManager.java:4101)
|
||||
at org.eclipse.jdt.internal.core.JavaModelManager.getLastBuiltState(JavaModelManager.java:2264)
|
||||
at org.eclipse.jdt.internal.core.builder.JavaBuilder.getLastState(JavaBuilder.java:450)
|
||||
at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:190)
|
||||
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1020)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
|
||||
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:247)
|
||||
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:303)
|
||||
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:392)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
|
||||
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:395)
|
||||
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:506)
|
||||
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:454)
|
||||
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:536)
|
||||
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:161)
|
||||
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:255)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
|
||||
Caused by: java.lang.NullPointerException: Cannot invoke "org.eclipse.jdt.internal.compiler.util.JrtFileSystem.walkModuleImage(org.eclipse.jdt.internal.compiler.util.JRTUtil$JrtFileVisitor, int)" because the return value of "org.eclipse.jdt.internal.compiler.util.JRTUtil.getJrtSystem(java.io.File, String)" is null
|
||||
at org.eclipse.jdt.internal.compiler.util.JRTUtil.walkModuleImage(JRTUtil.java:242)
|
||||
at org.eclipse.jdt.internal.core.builder.ClasspathJrt.lambda$1(ClasspathJrt.java:133)
|
||||
at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
|
||||
at org.eclipse.jdt.internal.core.builder.ClasspathJrt.loadModules(ClasspathJrt.java:129)
|
||||
at org.eclipse.jdt.internal.core.builder.ClasspathJrt.<init>(ClasspathJrt.java:67)
|
||||
at org.eclipse.jdt.internal.core.builder.ClasspathLocation.forJrtSystem(ClasspathLocation.java:170)
|
||||
at org.eclipse.jdt.internal.core.builder.State.readBinaryLocations(State.java:419)
|
||||
at org.eclipse.jdt.internal.core.builder.State.read(State.java:306)
|
||||
at org.eclipse.jdt.internal.core.builder.JavaBuilder.readState(JavaBuilder.java:161)
|
||||
at org.eclipse.jdt.internal.core.JavaModelManager.readStateTimed(JavaModelManager.java:4120)
|
||||
... 17 more
|
||||
!SUBENTRY 1 org.eclipse.jdt.core 4 2 2023-05-11 12:11:38.958
|
||||
!MESSAGE Error reading last build state for project Question1
|
||||
!STACK 0
|
||||
java.lang.NullPointerException: Cannot invoke "org.eclipse.jdt.internal.compiler.util.JrtFileSystem.walkModuleImage(org.eclipse.jdt.internal.compiler.util.JRTUtil$JrtFileVisitor, int)" because the return value of "org.eclipse.jdt.internal.compiler.util.JRTUtil.getJrtSystem(java.io.File, String)" is null
|
||||
at org.eclipse.jdt.internal.compiler.util.JRTUtil.walkModuleImage(JRTUtil.java:242)
|
||||
at org.eclipse.jdt.internal.core.builder.ClasspathJrt.lambda$1(ClasspathJrt.java:133)
|
||||
at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
|
||||
at org.eclipse.jdt.internal.core.builder.ClasspathJrt.loadModules(ClasspathJrt.java:129)
|
||||
at org.eclipse.jdt.internal.core.builder.ClasspathJrt.<init>(ClasspathJrt.java:67)
|
||||
at org.eclipse.jdt.internal.core.builder.ClasspathLocation.forJrtSystem(ClasspathLocation.java:170)
|
||||
at org.eclipse.jdt.internal.core.builder.State.readBinaryLocations(State.java:419)
|
||||
at org.eclipse.jdt.internal.core.builder.State.read(State.java:306)
|
||||
at org.eclipse.jdt.internal.core.builder.JavaBuilder.readState(JavaBuilder.java:161)
|
||||
at org.eclipse.jdt.internal.core.JavaModelManager.readStateTimed(JavaModelManager.java:4120)
|
||||
at org.eclipse.jdt.internal.core.JavaModelManager.readState(JavaModelManager.java:4101)
|
||||
at org.eclipse.jdt.internal.core.JavaModelManager.getLastBuiltState(JavaModelManager.java:2264)
|
||||
at org.eclipse.jdt.internal.core.builder.JavaBuilder.getLastState(JavaBuilder.java:450)
|
||||
at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:190)
|
||||
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1020)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
|
||||
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:247)
|
||||
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:303)
|
||||
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:392)
|
||||
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
|
||||
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:395)
|
||||
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:506)
|
||||
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:454)
|
||||
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:536)
|
||||
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:161)
|
||||
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:255)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
|
||||
|
||||
!ENTRY org.eclipse.ui 4 0 2023-05-11 12:42:13.000
|
||||
!MESSAGE Unhandled event loop exception
|
||||
!STACK 0
|
||||
org.eclipse.e4.core.di.InjectionException: org.eclipse.swt.SWTException: i/o error (java.io.FileNotFoundException: C:\Program Files\Git\mingw64\share\git\git-for-windows.ico (The system cannot find the path specified))
|
||||
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:68)
|
||||
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183)
|
||||
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:133)
|
||||
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4785)
|
||||
at org.eclipse.e4.ui.workbench.swt.DisplayUISynchronize.syncExec(DisplayUISynchronize.java:34)
|
||||
at org.eclipse.e4.ui.internal.di.UIEventObjectSupplier$UIEventHandler.handleEvent(UIEventObjectSupplier.java:64)
|
||||
at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:205)
|
||||
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:203)
|
||||
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
|
||||
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
|
||||
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
|
||||
at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:133)
|
||||
at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:75)
|
||||
at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:44)
|
||||
at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:55)
|
||||
at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:63)
|
||||
at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
|
||||
at org.eclipse.e4.ui.model.application.ui.impl.UIElementImpl.setVisible(UIElementImpl.java:361)
|
||||
at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.updateVisibility(ContributionRecord.java:113)
|
||||
at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:191)
|
||||
at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:202)
|
||||
at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerShowProcessor.showMenu(MenuManagerShowProcessor.java:256)
|
||||
at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerShowProcessor.menuAboutToHide(MenuManagerShowProcessor.java:114)
|
||||
at org.eclipse.jface.internal.MenuManagerEventHelper.showEventPostHelper(MenuManagerEventHelper.java:95)
|
||||
at org.eclipse.jface.action.MenuManager.handleAboutToShow(MenuManager.java:469)
|
||||
at org.eclipse.jface.action.MenuManager$2.menuShown(MenuManager.java:495)
|
||||
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:259)
|
||||
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
|
||||
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4256)
|
||||
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
|
||||
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1090)
|
||||
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1071)
|
||||
at org.eclipse.swt.widgets.Control.WM_INITMENUPOPUP(Control.java:5140)
|
||||
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4772)
|
||||
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:340)
|
||||
at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1478)
|
||||
at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2284)
|
||||
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5022)
|
||||
at org.eclipse.swt.internal.win32.OS.TrackPopupMenu(Native Method)
|
||||
at org.eclipse.swt.widgets.Menu._setVisible(Menu.java:237)
|
||||
at org.eclipse.swt.widgets.Display.runPopups(Display.java:4095)
|
||||
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3636)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
|
||||
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
|
||||
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
|
||||
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643)
|
||||
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
|
||||
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
|
||||
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
|
||||
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
|
||||
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
|
||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
|
||||
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
|
||||
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
|
||||
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
|
||||
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
|
||||
Caused by: org.eclipse.swt.SWTException: i/o error (java.io.FileNotFoundException: C:\Program Files\Git\mingw64\share\git\git-for-windows.ico (The system cannot find the path specified))
|
||||
at org.eclipse.swt.SWT.error(SWT.java:4918)
|
||||
at org.eclipse.swt.SWT.error(SWT.java:4833)
|
||||
at org.eclipse.swt.graphics.ImageLoader.load(ImageLoader.java:184)
|
||||
at org.eclipse.tm.terminal.view.ui.local.showin.ExternalExecutablesUtils.loadImage(ExternalExecutablesUtils.java:38)
|
||||
at org.eclipse.tm.terminal.view.ui.local.showin.DynamicContributionItems.getContributionItems(DynamicContributionItems.java:74)
|
||||
at org.eclipse.ui.actions.CompoundContributionItem.getContributionItemsToFill(CompoundContributionItem.java:83)
|
||||
at org.eclipse.ui.actions.CompoundContributionItem.fill(CompoundContributionItem.java:57)
|
||||
at org.eclipse.ui.internal.menus.DynamicMenuContributionItem.fill(DynamicMenuContributionItem.java:146)
|
||||
at org.eclipse.jface.action.MenuManager.doItemFill(MenuManager.java:729)
|
||||
at org.eclipse.jface.action.MenuManager.update(MenuManager.java:806)
|
||||
at org.eclipse.jface.action.MenuManager.update(MenuManager.java:673)
|
||||
at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRenderer.scheduleManagerUpdate(MenuManagerRenderer.java:1227)
|
||||
at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRenderer.subscribeUIElementTopicVisible(MenuManagerRenderer.java:213)
|
||||
at jdk.internal.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
|
||||
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
|
||||
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
|
||||
... 62 more
|
||||
Caused by: java.io.FileNotFoundException: C:\Program Files\Git\mingw64\share\git\git-for-windows.ico (The system cannot find the path specified)
|
||||
at java.base/java.io.FileInputStream.open0(Native Method)
|
||||
at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
|
||||
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
|
||||
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:111)
|
||||
at org.eclipse.swt.graphics.ImageLoader.load(ImageLoader.java:181)
|
||||
... 76 more
|
||||
|
||||
!ENTRY org.eclipse.ui 4 0 2023-05-11 13:23:16.136
|
||||
!MESSAGE Unhandled event loop exception
|
||||
!STACK 0
|
||||
org.eclipse.e4.core.di.InjectionException: org.eclipse.swt.SWTException: i/o error (java.io.FileNotFoundException: C:\Program Files\Git\mingw64\share\git\git-for-windows.ico (The system cannot find the path specified))
|
||||
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:68)
|
||||
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183)
|
||||
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:133)
|
||||
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4785)
|
||||
at org.eclipse.e4.ui.workbench.swt.DisplayUISynchronize.syncExec(DisplayUISynchronize.java:34)
|
||||
at org.eclipse.e4.ui.internal.di.UIEventObjectSupplier$UIEventHandler.handleEvent(UIEventObjectSupplier.java:64)
|
||||
at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:205)
|
||||
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:203)
|
||||
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
|
||||
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
|
||||
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
|
||||
at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:133)
|
||||
at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:75)
|
||||
at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:44)
|
||||
at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:55)
|
||||
at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:63)
|
||||
at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
|
||||
at org.eclipse.e4.ui.model.application.ui.impl.UIElementImpl.setVisible(UIElementImpl.java:361)
|
||||
at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.updateVisibility(ContributionRecord.java:113)
|
||||
at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:191)
|
||||
at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:202)
|
||||
at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerShowProcessor.showMenu(MenuManagerShowProcessor.java:256)
|
||||
at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerShowProcessor.menuAboutToHide(MenuManagerShowProcessor.java:114)
|
||||
at org.eclipse.jface.internal.MenuManagerEventHelper.showEventPostHelper(MenuManagerEventHelper.java:95)
|
||||
at org.eclipse.jface.action.MenuManager.handleAboutToShow(MenuManager.java:469)
|
||||
at org.eclipse.jface.action.MenuManager$2.menuShown(MenuManager.java:495)
|
||||
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:259)
|
||||
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
|
||||
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4256)
|
||||
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
|
||||
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1090)
|
||||
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1071)
|
||||
at org.eclipse.swt.widgets.Control.WM_INITMENUPOPUP(Control.java:5140)
|
||||
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4772)
|
||||
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:340)
|
||||
at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1478)
|
||||
at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2284)
|
||||
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5022)
|
||||
at org.eclipse.swt.internal.win32.OS.TrackPopupMenu(Native Method)
|
||||
at org.eclipse.swt.widgets.Menu._setVisible(Menu.java:237)
|
||||
at org.eclipse.swt.widgets.Display.runPopups(Display.java:4095)
|
||||
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3636)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
|
||||
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
|
||||
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
|
||||
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
|
||||
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643)
|
||||
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
|
||||
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
|
||||
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
|
||||
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
|
||||
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
|
||||
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
|
||||
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
|
||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
|
||||
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
|
||||
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
|
||||
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
|
||||
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
|
||||
Caused by: org.eclipse.swt.SWTException: i/o error (java.io.FileNotFoundException: C:\Program Files\Git\mingw64\share\git\git-for-windows.ico (The system cannot find the path specified))
|
||||
at org.eclipse.swt.SWT.error(SWT.java:4918)
|
||||
at org.eclipse.swt.SWT.error(SWT.java:4833)
|
||||
at org.eclipse.swt.graphics.ImageLoader.load(ImageLoader.java:184)
|
||||
at org.eclipse.tm.terminal.view.ui.local.showin.ExternalExecutablesUtils.loadImage(ExternalExecutablesUtils.java:38)
|
||||
at org.eclipse.tm.terminal.view.ui.local.showin.DynamicContributionItems.getContributionItems(DynamicContributionItems.java:74)
|
||||
at org.eclipse.ui.actions.CompoundContributionItem.getContributionItemsToFill(CompoundContributionItem.java:83)
|
||||
at org.eclipse.ui.actions.CompoundContributionItem.fill(CompoundContributionItem.java:57)
|
||||
at org.eclipse.ui.internal.menus.DynamicMenuContributionItem.fill(DynamicMenuContributionItem.java:146)
|
||||
at org.eclipse.jface.action.MenuManager.doItemFill(MenuManager.java:729)
|
||||
at org.eclipse.jface.action.MenuManager.update(MenuManager.java:806)
|
||||
at org.eclipse.jface.action.MenuManager.update(MenuManager.java:673)
|
||||
at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRenderer.scheduleManagerUpdate(MenuManagerRenderer.java:1227)
|
||||
at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRenderer.subscribeUIElementTopicVisible(MenuManagerRenderer.java:213)
|
||||
at jdk.internal.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
|
||||
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
|
||||
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
|
||||
... 62 more
|
||||
Caused by: java.io.FileNotFoundException: C:\Program Files\Git\mingw64\share\git\git-for-windows.ico (The system cannot find the path specified)
|
||||
at java.base/java.io.FileInputStream.open0(Native Method)
|
||||
at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
|
||||
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
|
||||
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:111)
|
||||
at org.eclipse.swt.graphics.ImageLoader.load(ImageLoader.java:181)
|
||||
... 76 more
|
||||
!SESSION 2023-05-18 12:08:56.459 -----------------------------------------------
|
||||
eclipse.buildId=4.26.0.20221201-1200
|
||||
java.version=17.0.6
|
||||
java.vendor=Eclipse Adoptium
|
||||
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
|
||||
Framework arguments: -product org.eclipse.epp.package.jee.product
|
||||
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product
|
||||
|
||||
!ENTRY ch.qos.logback.classic 1 0 2023-05-18 12:08:57.585
|
||||
!MESSAGE Activated before the state location was initialized. Retry after the state location is initialized.
|
||||
|
||||
!ENTRY ch.qos.logback.classic 1 0 2023-05-18 12:08:58.627
|
||||
!MESSAGE Logback config file: E:\JAVA 2023\Lab12_2230026071\.metadata\.plugins\org.eclipse.m2e.logback\logback.2.1.0.20221015-0744.xml
|
||||
|
||||
!ENTRY org.eclipse.jface 2 0 2023-05-18 12:09:00.783
|
||||
!MESSAGE Keybinding conflicts occurred. They may interfere with normal accelerator operation.
|
||||
!SUBENTRY 1 org.eclipse.jface 2 0 2023-05-18 12:09:00.783
|
||||
!MESSAGE A conflict occurred for CTRL+SHIFT+T:
|
||||
Binding(CTRL+SHIFT+T,
|
||||
ParameterizedCommand(Command(org.eclipse.jdt.ui.navigate.open.type,Open Type,
|
||||
Open a type in a Java editor,
|
||||
Category(org.eclipse.ui.category.navigate,Navigate,null,true),
|
||||
WorkbenchHandlerServiceHandler("org.eclipse.jdt.ui.navigate.open.type"),
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
Binding(CTRL+SHIFT+T,
|
||||
ParameterizedCommand(Command(org.eclipse.lsp4e.symbolinworkspace,Go to Symbol in Workspace,
|
||||
,
|
||||
Category(org.eclipse.lsp4e.category,Language Servers,null,true),
|
||||
WorkbenchHandlerServiceHandler("org.eclipse.lsp4e.symbolinworkspace"),
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
!SUBENTRY 1 org.eclipse.jface 2 0 2023-05-18 12:09:00.790
|
||||
!MESSAGE A conflict occurred for ALT+SHIFT+R:
|
||||
Binding(ALT+SHIFT+R,
|
||||
ParameterizedCommand(Command(org.eclipse.jdt.ui.edit.text.java.rename.element,Rename - Refactoring ,
|
||||
Rename the selected element,
|
||||
Category(org.eclipse.jdt.ui.category.refactoring,Refactor - Java,Java Refactoring Actions,true),
|
||||
WorkbenchHandlerServiceHandler("org.eclipse.jdt.ui.edit.text.java.rename.element"),
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
Binding(ALT+SHIFT+R,
|
||||
ParameterizedCommand(Command(org.eclipse.ui.edit.rename,Rename,
|
||||
Rename the selected item,
|
||||
Category(org.eclipse.ui.category.file,File,null,true),
|
||||
WorkbenchHandlerServiceHandler("org.eclipse.ui.edit.rename"),
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
|
||||
!ENTRY org.eclipse.egit.ui 2 0 2023-05-18 12:09:03.836
|
||||
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
|
||||
user global configuration and to define the default location to store repositories: 'C:\Users\Danie'. If this is
|
||||
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
|
||||
EGit might behave differently since they see different configuration options.
|
||||
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.
|
||||
!SESSION 2023-05-18 12:11:42.792 -----------------------------------------------
|
||||
eclipse.buildId=4.26.0.20221201-1200
|
||||
java.version=17.0.6
|
||||
java.vendor=Eclipse Adoptium
|
||||
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
|
||||
Framework arguments: -product org.eclipse.epp.package.jee.product
|
||||
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product
|
||||
|
||||
!ENTRY ch.qos.logback.classic 1 0 2023-05-18 12:11:43.735
|
||||
!MESSAGE Activated before the state location was initialized. Retry after the state location is initialized.
|
||||
|
||||
!ENTRY ch.qos.logback.classic 1 0 2023-05-18 12:11:44.538
|
||||
!MESSAGE Logback config file: E:\JAVA 2023\Lab12_2230026071\.metadata\.plugins\org.eclipse.m2e.logback\logback.2.1.0.20221015-0744.xml
|
||||
|
||||
!ENTRY org.eclipse.jface 2 0 2023-05-18 12:11:46.371
|
||||
!MESSAGE Keybinding conflicts occurred. They may interfere with normal accelerator operation.
|
||||
!SUBENTRY 1 org.eclipse.jface 2 0 2023-05-18 12:11:46.371
|
||||
!MESSAGE A conflict occurred for CTRL+SHIFT+T:
|
||||
Binding(CTRL+SHIFT+T,
|
||||
ParameterizedCommand(Command(org.eclipse.jdt.ui.navigate.open.type,Open Type,
|
||||
Open a type in a Java editor,
|
||||
Category(org.eclipse.ui.category.navigate,Navigate,null,true),
|
||||
WorkbenchHandlerServiceHandler("org.eclipse.jdt.ui.navigate.open.type"),
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
Binding(CTRL+SHIFT+T,
|
||||
ParameterizedCommand(Command(org.eclipse.lsp4e.symbolinworkspace,Go to Symbol in Workspace,
|
||||
,
|
||||
Category(org.eclipse.lsp4e.category,Language Servers,null,true),
|
||||
WorkbenchHandlerServiceHandler("org.eclipse.lsp4e.symbolinworkspace"),
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
!SUBENTRY 1 org.eclipse.jface 2 0 2023-05-18 12:11:46.371
|
||||
!MESSAGE A conflict occurred for ALT+SHIFT+R:
|
||||
Binding(ALT+SHIFT+R,
|
||||
ParameterizedCommand(Command(org.eclipse.jdt.ui.edit.text.java.rename.element,Rename - Refactoring ,
|
||||
Rename the selected element,
|
||||
Category(org.eclipse.jdt.ui.category.refactoring,Refactor - Java,Java Refactoring Actions,true),
|
||||
WorkbenchHandlerServiceHandler("org.eclipse.jdt.ui.edit.text.java.rename.element"),
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
Binding(ALT+SHIFT+R,
|
||||
ParameterizedCommand(Command(org.eclipse.ui.edit.rename,Rename,
|
||||
Rename the selected item,
|
||||
Category(org.eclipse.ui.category.file,File,null,true),
|
||||
WorkbenchHandlerServiceHandler("org.eclipse.ui.edit.rename"),
|
||||
,,true),null),
|
||||
org.eclipse.ui.defaultAcceleratorConfiguration,
|
||||
org.eclipse.ui.contexts.window,,,system)
|
||||
|
||||
!ENTRY org.eclipse.egit.ui 2 0 2023-05-18 12:11:48.976
|
||||
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
|
||||
user global configuration and to define the default location to store repositories: 'C:\Users\Danie'. If this is
|
||||
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
|
||||
EGit might behave differently since they see different configuration options.
|
||||
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.
|
||||
@@ -0,0 +1,45 @@
|
||||
import java.awt.Color;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Point;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.ArrayList;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class MyPanel extends JPanel {
|
||||
//instance variables
|
||||
private Model m;
|
||||
private ControllerClicks c;
|
||||
|
||||
public MyPanel(Model m, ControllerClicks c) {
|
||||
this.m = m;
|
||||
this.c = c;
|
||||
this.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
if(e.getButton() == MouseEvent.BUTTON1) {
|
||||
c.mouseClicked(e.getPoint());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void paintComponent(Graphics g) {
|
||||
super.paintComponent(g);
|
||||
g.setColor(Color.RED);
|
||||
if(m.getPoints().size() == 1) {
|
||||
Point p = m.getPoints().get(0);
|
||||
g.drawRect((int)p.getX(), (int)p.getY(), 1, 1);
|
||||
}
|
||||
else {
|
||||
for(int i = 1; i < m.getPoints().size(); i++) {
|
||||
Point start = m.getPoints().get(i - 1);
|
||||
Point end = m.getPoints().get(i);
|
||||
g.drawLine((int)start.getX(), (int)start.getY(),
|
||||
(int)end.getX(), (int)end.getY());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public abstract class View<T extends Controller> extends JFrame implements ModelListener{
|
||||
//instance variables
|
||||
protected Model m;
|
||||
protected T c;
|
||||
|
||||
//constructor
|
||||
public View(Model m, T c) {
|
||||
this.m = m;
|
||||
this.c = c;
|
||||
this.setLocationRelativeTo(null);
|
||||
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
m.addListener(this);
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void update();
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import javax.swing.JLabel;
|
||||
|
||||
public class ViewNumber extends View<Controller>{
|
||||
//instance variable
|
||||
private JLabel label;
|
||||
|
||||
public ViewNumber(Model m, Controller c) {
|
||||
super(m, c);
|
||||
label = new JLabel();
|
||||
update();
|
||||
this.add(label);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
label.setText("Number of points is: " + m.numberOfPoints());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
public class ViewNumber {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public abstract class View<T extends Controller> extends JFrame implements ModelListener{
|
||||
//instance variables
|
||||
protected Model m;
|
||||
protected T c;
|
||||
|
||||
//constructor
|
||||
public View(Model m, T c) {
|
||||
this.m = m;
|
||||
this.c = c;
|
||||
this.setLocationRelativeTo(null);
|
||||
this.setSize(400, 300);
|
||||
m.addListener(this);
|
||||
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void update();
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
import java.awt.Point;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Model {
|
||||
//instance variables
|
||||
private ArrayList<Point> points;
|
||||
private ArrayList<ModelListener> listeners;
|
||||
|
||||
//constructor
|
||||
public Model() {
|
||||
points = new ArrayList<Point>();
|
||||
listeners = new ArrayList<ModelListener>();
|
||||
}
|
||||
|
||||
//methods
|
||||
public void addListener(ModelListener l) {
|
||||
listeners.add(l);
|
||||
}
|
||||
|
||||
public ArrayList<Point> getPoints(){
|
||||
return points;
|
||||
}
|
||||
|
||||
public void addPoint(Point p) {
|
||||
points.add(p);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
public void clearAllPoints() {
|
||||
points.clear();
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
public void deleteLastPoint(){
|
||||
if(points.size() > 0) {
|
||||
points.remove(points.size()-1);
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
private void notifyListeners() {
|
||||
for(ModelListener l: listeners) {
|
||||
l.update();
|
||||
}
|
||||
}
|
||||
|
||||
//test
|
||||
public void testModel() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
public class numberOfPoints {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public abstract class View<T extends Controller> extends JFrame implements ModelListener{
|
||||
//instance variables
|
||||
protected Model m;
|
||||
protected T c;
|
||||
|
||||
//constructor
|
||||
public View(Model m, T c) {
|
||||
this.m = m;
|
||||
this.c = c;
|
||||
this.setSize(400, 300);
|
||||
this.setLocationRelativeTo(null);
|
||||
m.addListener(this);
|
||||
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void update();
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public abstract class View<T extends Controller> extends JFrame implements ModelListener{
|
||||
//instance variables
|
||||
protected Model m;
|
||||
protected T c;
|
||||
|
||||
//constructor
|
||||
public View(Model m, T c) {
|
||||
this.m = m;
|
||||
this.c = c;
|
||||
this.setLocationRelativeTo(null);
|
||||
m.addListener(this);
|
||||
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void update();
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
import java.awt.Point;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Model {
|
||||
//instance variables
|
||||
private ArrayList<Point> points;
|
||||
private ArrayList<ModelListener> listeners;
|
||||
|
||||
//constructor
|
||||
public Model() {
|
||||
points = new ArrayList<Point>();
|
||||
listeners = new ArrayList<ModelListener>();
|
||||
}
|
||||
|
||||
//methods
|
||||
public void addListener(ModelListener l) {
|
||||
listeners.add(l);
|
||||
}
|
||||
|
||||
public ArrayList<Point> getPoints(){
|
||||
return points;
|
||||
}
|
||||
|
||||
public void addPoint(Point p) {
|
||||
points.add(p);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
public void clearAllPoints() {
|
||||
points.clear();
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
public void deleteLastPoint(){
|
||||
if(points.size() > 0) {
|
||||
points.remove(points.size() - 1);
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
private void notifyListeners() {
|
||||
for(ModelListener l: listeners) {
|
||||
l.update();
|
||||
}
|
||||
}
|
||||
|
||||
//test
|
||||
public void testModel() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
public class Start {
|
||||
public static void main(String[] args) {
|
||||
javax.swing.SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Model m = new Model(); // Single shared model.
|
||||
|
||||
ControllerClicks c1 = new ControllerClicks(m);
|
||||
MyFrame v1 = new MyFrame(m, c1);
|
||||
|
||||
Controller c2 = new Controller(m);
|
||||
View v2 = new ViewNumber(m, c2);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class MyFrame extends View<ControllerClicks> {
|
||||
public MyFrame(Model m, ControllerClicks c) {
|
||||
super(m, c);
|
||||
this.setTitle("MyFrame Title");
|
||||
this.setSize(400, 300);
|
||||
|
||||
this.setLayout(new BorderLayout());
|
||||
|
||||
MyPanel centerPanel = new MyPanel(m, c);
|
||||
this.add(centerPanel, BorderLayout.CENTER);
|
||||
JPanel topPanel = new JPanel();
|
||||
this.add(topPanel, BorderLayout.PAGE_START);
|
||||
topPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
|
||||
|
||||
JButton resetButton = new JButton("Reset");
|
||||
resetButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.resetClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(resetButton);
|
||||
JButton undoButton = new JButton("Undo");
|
||||
undoButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.undoClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(undoButton);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void update() {
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import javax.swing.JLabel;
|
||||
|
||||
public class ViewNumber extends View<Controller>{
|
||||
//instance variable
|
||||
private JLabel label;
|
||||
|
||||
public ViewNumber(Model m, Controller c) {
|
||||
super(m, c);
|
||||
this.setTitle("View Number");
|
||||
this.setSize(200, 150);
|
||||
this.setLocationRelativeTo(null);
|
||||
label = new JLabel();
|
||||
update();
|
||||
this.add(label);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
label.setText("Number of points is: " + m.numberOfPoints());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class MyFrame extends View<ControllerClicks> {
|
||||
public MyFrame(Model m, ControllerClicks c) {
|
||||
super(m, c);
|
||||
this.setTitle("MyFrame Title");
|
||||
this.setSize(400, 300);
|
||||
|
||||
|
||||
this.setLayout(new BorderLayout());
|
||||
MyPanel centerPanel = new MyPanel(m, c);
|
||||
this.add(centerPanel, BorderLayout.CENTER);
|
||||
JPanel topPanel = new JPanel();
|
||||
this.add(topPanel, BorderLayout.PAGE_START);
|
||||
topPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
|
||||
|
||||
JButton resetButton = new JButton("Reset");
|
||||
resetButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.resetClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(resetButton);
|
||||
|
||||
JButton undoButton = new JButton("Undo");
|
||||
undoButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.undoClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(undoButton);
|
||||
|
||||
}
|
||||
|
||||
public void update() {
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
public class Test {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import javax.swing.JLabel;
|
||||
|
||||
public class ViewNumber extends View<Controller>{
|
||||
//instance variable
|
||||
private JLabel label;
|
||||
|
||||
public ViewNumber(Model m, Controller c) {
|
||||
super(m, c);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class MyFrame extends View<ControllerClicks> {
|
||||
public MyFrame(Model m, ControllerClicks c) {
|
||||
super(m, c);
|
||||
this.setTitle("MyFrame Title");
|
||||
this.setLayout(new BorderLayout());
|
||||
|
||||
MyPanel centerPanel = new MyPanel(m, c);
|
||||
this.add(centerPanel, BorderLayout.CENTER);
|
||||
JPanel topPanel = new JPanel();
|
||||
this.add(topPanel, BorderLayout.PAGE_START);
|
||||
topPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
|
||||
|
||||
JButton resetButton = new JButton("Reset");
|
||||
resetButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.resetClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(resetButton);
|
||||
JButton undoButton = new JButton("Undo");
|
||||
undoButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.undoClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(undoButton);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void update() {
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import javax.swing.JLabel;
|
||||
|
||||
public class ViewNumber extends View<Controller>{
|
||||
//instance variable
|
||||
private JLabel label;
|
||||
|
||||
public ViewNumber(Model m, Controller c) {
|
||||
super(m, c);
|
||||
this.setTitle("View Number");
|
||||
this.setSize(200, 200);
|
||||
label = new JLabel();
|
||||
update();
|
||||
this.add(label);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
label.setText("Number of points is: " + m.numberOfPoints());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class MyFrame extends View<ControllerClicks> {
|
||||
public MyFrame(Model m, ControllerClicks c) {
|
||||
super(m, c);
|
||||
this.setTitle("MyFrame Title");
|
||||
this.setSize(400, 300);
|
||||
this.setLocationRelativeTo(null);
|
||||
|
||||
this.setLayout(new BorderLayout());
|
||||
MyPanel centerPanel = new MyPanel(m, c);
|
||||
this.add(centerPanel, BorderLayout.CENTER);
|
||||
JPanel topPanel = new JPanel();
|
||||
this.add(topPanel, BorderLayout.PAGE_START);
|
||||
topPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
|
||||
|
||||
JButton resetButton = new JButton("Reset");
|
||||
resetButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.resetClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(resetButton);
|
||||
|
||||
JButton undoButton = new JButton("Undo");
|
||||
undoButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.undoClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(undoButton);
|
||||
|
||||
}
|
||||
|
||||
public void update() {
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class MyFrame extends View<ControllerClicks> {
|
||||
public MyFrame(Model m, ControllerClicks c) {
|
||||
super(m, c);
|
||||
this.setTitle("MyFrame Title");
|
||||
this.setSize(400, 300);
|
||||
this.setLocationRelativeTo(null);
|
||||
this.setLayout(new BorderLayout());
|
||||
|
||||
MyPanel centerPanel = new MyPanel(m, c);
|
||||
this.add(centerPanel, BorderLayout.CENTER);
|
||||
JPanel topPanel = new JPanel();
|
||||
this.add(topPanel, BorderLayout.PAGE_START);
|
||||
topPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
|
||||
|
||||
JButton resetButton = new JButton("Reset");
|
||||
resetButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.resetClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(resetButton);
|
||||
JButton undoButton = new JButton("Undo");
|
||||
undoButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.undoClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(undoButton);
|
||||
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
public void update() {
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class MyFrame extends View<ControllerClicks> {
|
||||
public MyFrame(Model m, ControllerClicks c) {
|
||||
super(m, c);
|
||||
this.setTitle("MyFrame Title");
|
||||
this.setLayout(new BorderLayout());
|
||||
|
||||
MyPanel centerPanel = new MyPanel(m, c);
|
||||
this.add(centerPanel, BorderLayout.CENTER);
|
||||
JPanel topPanel = new JPanel();
|
||||
this.add(topPanel, BorderLayout.PAGE_START);
|
||||
topPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
|
||||
|
||||
JButton resetButton = new JButton("Reset");
|
||||
resetButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.resetClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(resetButton);
|
||||
JButton undoButton = new JButton("Undo");
|
||||
undoButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.undoClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(undoButton);
|
||||
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
public void update() {
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public abstract class View<T extends Controller> extends JFrame implements ModelListener{
|
||||
//instance variables
|
||||
protected Model m;
|
||||
protected T c;
|
||||
|
||||
//constructor
|
||||
public View(Model m, T c) {
|
||||
this.m = m;
|
||||
this.c = c;
|
||||
this.setLocationRelativeTo(null);
|
||||
m.addListener(this);
|
||||
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void update();
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
public class Start {
|
||||
public static void main(String[] args) {
|
||||
javax.swing.SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Model m = new Model(); // Single shared model.
|
||||
|
||||
ControllerClicks c1 = new ControllerClicks(m);
|
||||
MyFrame v1 = new MyFrame(m, c1);
|
||||
MyFrame v3 = new MyFrame(m, c1);
|
||||
|
||||
Controller c2 = new Controller(m);
|
||||
ViewNumber v2 = new ViewNumber(m, c2);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public abstract class View<T extends Controller> extends JFrame implements ModelListener{
|
||||
//instance variables
|
||||
protected Model m;
|
||||
protected T c;
|
||||
|
||||
//constructor
|
||||
public View(Model m, T c) {
|
||||
this.m = m;
|
||||
this.c = c;
|
||||
this.setSize(400, 300);
|
||||
this.setLocationRelativeTo(null);
|
||||
m.addListener(this);
|
||||
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void update();
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class MyFrame extends View<ControllerClicks> {
|
||||
public MyFrame(Model m, ControllerClicks c) {
|
||||
super(m, c);
|
||||
this.setTitle("MyFrame Title");
|
||||
this.setSize(400, 300);
|
||||
this.setLocationRelativeTo(null);
|
||||
this.setLayout(new BorderLayout());
|
||||
|
||||
MyPanel centerPanel = new MyPanel(m, c);
|
||||
this.add(centerPanel, BorderLayout.CENTER);
|
||||
JPanel topPanel = new JPanel();
|
||||
this.add(topPanel, BorderLayout.PAGE_START);
|
||||
topPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
|
||||
|
||||
JButton resetButton = new JButton("Reset");
|
||||
resetButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.resetClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(resetButton);
|
||||
JButton undoButton = new JButton("Undo");
|
||||
undoButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.undoClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(undoButton);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void update() {
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import javax.swing.JLabel;
|
||||
|
||||
public class ViewNumber extends View<Controller>{
|
||||
//instance variable
|
||||
private JLabel label;
|
||||
|
||||
public ViewNumber(Model m, Controller c) {
|
||||
super(m, c);
|
||||
this.setTitle("View Number");
|
||||
this.setSize(200, 150);
|
||||
label = new JLabel();
|
||||
update();
|
||||
this.add(label);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
label.setText("Number of points is: " + m.numberOfPoints());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class MyFrame extends View<ControllerClicks> {
|
||||
public MyFrame(Model m, ControllerClicks c) {
|
||||
super(m, c);
|
||||
this.setTitle("MyFrame Title");
|
||||
this.setSize(400, 300);
|
||||
this.setLocationRelativeTo(null);
|
||||
|
||||
this.setLayout(new BorderLayout());
|
||||
MyPanel centerPanel = new MyPanel(m, c);
|
||||
this.add(centerPanel, BorderLayout.CENTER);
|
||||
JPanel topPanel = new JPanel();
|
||||
this.add(topPanel, BorderLayout.PAGE_START);
|
||||
topPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
|
||||
|
||||
JButton resetButton = new JButton("Reset");
|
||||
resetButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.resetClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(resetButton);
|
||||
|
||||
JButton undoButton = new JButton("Undo");
|
||||
undoButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.undoClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(undoButton);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void update() {
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
public class Start {
|
||||
public static void main(String[] args) {
|
||||
javax.swing.SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Model m = new Model(); // Single shared model.
|
||||
|
||||
ControllerClicks c1 = new ControllerClicks(m);
|
||||
MyFrame v1 = new MyFrame(m, c1);
|
||||
|
||||
Controller c2 = new Controller(m);
|
||||
ViewNumber v2 = new ViewNumber(m, c2);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
import java.awt.Point;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Model {
|
||||
//instance variables
|
||||
private ArrayList<Point> points;
|
||||
private ArrayList<ModelListener> listeners;
|
||||
|
||||
//constructor
|
||||
public Model() {
|
||||
points = new ArrayList<Point>();
|
||||
listeners = new ArrayList<ModelListener>();
|
||||
}
|
||||
|
||||
//methods
|
||||
public void addListener(ModelListener l) {
|
||||
listeners.add(l);
|
||||
}
|
||||
|
||||
public ArrayList<Point> getPoints(){
|
||||
return points;
|
||||
}
|
||||
|
||||
public void addPoint(Point p) {
|
||||
points.add(p);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
public void clearAllPoints() {
|
||||
points.clear();
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
public void deleteLastPoint(){
|
||||
if(points.size() > 0) {
|
||||
points.remove(points.size() - 1);
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
private void notifyListeners() {
|
||||
for(ModelListener l: listeners) {
|
||||
l.update();
|
||||
}
|
||||
}
|
||||
|
||||
//test
|
||||
public void testModel() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class MyFrame extends View<ControllerClicks> {
|
||||
public MyFrame(Model m, ControllerClicks c) {
|
||||
super(m, c);
|
||||
this.setTitle("MyFrame Title");
|
||||
this.setSize(400, 300);
|
||||
this.setLocationRelativeTo(null);
|
||||
this.setLayout(new BorderLayout());
|
||||
|
||||
MyPanel centerPanel = new MyPanel(m, c);
|
||||
this.add(centerPanel, BorderLayout.CENTER);
|
||||
JPanel topPanel = new JPanel();
|
||||
this.add(topPanel, BorderLayout.PAGE_START);
|
||||
topPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
|
||||
|
||||
JButton resetButton = new JButton("Reset");
|
||||
resetButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.resetClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(resetButton);
|
||||
JButton undoButton = new JButton("Undo");
|
||||
undoButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.undoClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(undoButton);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void update() {
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
import java.awt.Point;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Model {
|
||||
//instance variables
|
||||
private ArrayList<Point> points;
|
||||
private ArrayList<ModelListener> listeners;
|
||||
|
||||
//constructor
|
||||
public Model() {
|
||||
points = new ArrayList<Point>();
|
||||
listeners = new ArrayList<ModelListener>();
|
||||
}
|
||||
|
||||
//methods
|
||||
public void addListener(ModelListener l) {
|
||||
listeners.add(l);
|
||||
}
|
||||
|
||||
public ArrayList<Point> getPoints(){
|
||||
return points;
|
||||
}
|
||||
|
||||
public void addPoint(Point p) {
|
||||
points.add(p);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
public void clearAllPoints() {
|
||||
points.clear();
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
public void deleteLastPoint(){
|
||||
points.remove(points.size()-1);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
private void notifyListeners() {
|
||||
for(ModelListener l: listeners) {
|
||||
l.update();
|
||||
}
|
||||
}
|
||||
|
||||
//test
|
||||
public void testModel() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public abstract class View<T extends Controller> extends JFrame implements ModelListener{
|
||||
//instance variables
|
||||
protected Model m;
|
||||
protected T c;
|
||||
|
||||
//constructor
|
||||
public View(Model m, T c) {
|
||||
this.m = m;
|
||||
this.c = c;
|
||||
m.addListener(this);
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void update();
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class MyFrame extends View<ControllerClicks> {
|
||||
public MyFrame(Model m, ControllerClicks c) {
|
||||
super(m, c);
|
||||
this.setTitle("MyFrame Title");
|
||||
this.setSize(400, 300);
|
||||
this.setLayout(new BorderLayout());
|
||||
|
||||
MyPanel centerPanel = new MyPanel(m, c);
|
||||
this.add(centerPanel, BorderLayout.CENTER);
|
||||
JPanel topPanel = new JPanel();
|
||||
this.add(topPanel, BorderLayout.PAGE_START);
|
||||
topPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
|
||||
|
||||
JButton resetButton = new JButton("Reset");
|
||||
resetButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.resetClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(resetButton);
|
||||
JButton undoButton = new JButton("Undo");
|
||||
undoButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
c.undoClicked();
|
||||
}
|
||||
});
|
||||
topPanel.add(undoButton);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void update() {
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
import java.awt.Point;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Model {
|
||||
//instance variables
|
||||
private ArrayList<Point> points;
|
||||
private ArrayList<ModelListener> listeners;
|
||||
|
||||
//constructor
|
||||
public Model() {
|
||||
points = new ArrayList<Point>();
|
||||
listeners = new ArrayList<ModelListener>();
|
||||
}
|
||||
|
||||
//methods
|
||||
public void addListener(ModelListener l) {
|
||||
listeners.add(l);
|
||||
}
|
||||
|
||||
public ArrayList<Point> getPoints(){
|
||||
return points;
|
||||
}
|
||||
|
||||
public void addPoint(Point p) {
|
||||
points.add(p);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
public void clearAllPoints() {
|
||||
points.clear();
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
public void deleteLastPoint(){
|
||||
if(points.size() > 0) {
|
||||
points.remove(points.size() - 1);
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
private void notifyListeners() {
|
||||
for(ModelListener l: listeners) {
|
||||
l.update();
|
||||
}
|
||||
}
|
||||
|
||||
public int numberOfPoints() {
|
||||
return points.size();
|
||||
}
|
||||
|
||||
//test
|
||||
public void testModel() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public abstract class View<T extends Controller> extends JFrame implements ModelListener{
|
||||
//instance variables
|
||||
protected Model m;
|
||||
protected T c;
|
||||
|
||||
//constructor
|
||||
public View(Model m, T c) {
|
||||
this.m = m;
|
||||
this.c = c;
|
||||
this.setSize(400, 300);
|
||||
this.setLocationRelativeTo(null);
|
||||
m.addListener(this);
|
||||
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void update();
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public abstract class View<T extends Controller> extends JFrame implements ModelListener{
|
||||
//instance variables
|
||||
protected Model m;
|
||||
protected T c;
|
||||
|
||||
//constructor
|
||||
public View(Model m, T c) {
|
||||
this.m = m;
|
||||
this.c = c;
|
||||
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
m.addListener(this);
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void update();
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public abstract class View<T extends Controller> extends JFrame implements ModelListener{
|
||||
//instance variables
|
||||
protected Model m;
|
||||
protected T c;
|
||||
|
||||
//constructor
|
||||
public View(Model m, T c) {
|
||||
this.m = m;
|
||||
this.c = c;
|
||||
|
||||
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
m.addListener(this);
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void update();
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
import java.awt.Point;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Model {
|
||||
//instance variables
|
||||
private ArrayList<Point> points;
|
||||
private ArrayList<ModelListener> listeners;
|
||||
|
||||
//constructor
|
||||
public Model() {
|
||||
points = new ArrayList<Point>();
|
||||
listeners = new ArrayList<ModelListener>();
|
||||
}
|
||||
|
||||
//methods
|
||||
public void addListener(ModelListener l) {
|
||||
listeners.add(l);
|
||||
}
|
||||
|
||||
public ArrayList<Point> getPoints(){
|
||||
return points;
|
||||
}
|
||||
|
||||
public void addPoint(Point p) {
|
||||
points.add(p);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
public void clearAllPoints() {
|
||||
points.clear();
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
public void deleteLastPoint(){
|
||||
if(points.size() > 0) {
|
||||
points.remove(points.size() - 1);
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
private void notifyListeners() {
|
||||
for(ModelListener l: listeners) {
|
||||
l.update();
|
||||
}
|
||||
}
|
||||
|
||||
//test
|
||||
public static void testModel() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
public class Test {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public abstract class View<T extends Controller> extends JFrame implements ModelListener{
|
||||
//instance variables
|
||||
protected Model m;
|
||||
protected T c;
|
||||
|
||||
//constructor
|
||||
public View(Model m, T c) {
|
||||
this.m = m;
|
||||
this.c = c;
|
||||
this.setLocationRelativeTo(null);
|
||||
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
m.addListener(this);
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void update();
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import java.awt.BorderLayout;
|
||||
|
||||
import javax.swing.JLabel;
|
||||
|
||||
public class ViewNumber extends View<Controller>{
|
||||
//instance variable
|
||||
private JLabel label;
|
||||
|
||||
public ViewNumber(Model m, Controller c) {
|
||||
super(m, c);
|
||||
this.setTitle("MyFrame Title");
|
||||
this.setLayout(new BorderLayout());
|
||||
label = new JLabel();
|
||||
update();
|
||||
this.add(label);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
label.setText("Number of points is: " + m.numberOfPoints());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import javax.swing.JLabel;
|
||||
|
||||
public class ViewNumber extends View<Controller>{
|
||||
//instance variable
|
||||
private JLabel label;
|
||||
|
||||
public ViewNumber(Model m, Controller c) {
|
||||
super(m, c);
|
||||
this.setTitle("View Number");
|
||||
this.setSize(200, 100);
|
||||
label = new JLabel();
|
||||
update();
|
||||
this.add(label);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
label.setText("Number of points is: " + m.numberOfPoints());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import javax.swing.JLabel;
|
||||
|
||||
public class ViewNumber extends View<Controller>{
|
||||
//instance variable
|
||||
private JLabel label;
|
||||
|
||||
public ViewNumber(Model m, Controller c) {
|
||||
super(m, c);
|
||||
this.setTitle("View Number");
|
||||
this.setSize(100, 100);
|
||||
label = new JLabel();
|
||||
update();
|
||||
this.add(label);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
label.setText("Number of points is: " + m.numberOfPoints());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
public class Start {
|
||||
public static void main(String[] args) {
|
||||
javax.swing.SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Model m = new Model(); // Single shared model.
|
||||
|
||||
ControllerClicks c1 = new ControllerClicks(m);
|
||||
MyFrame v1 = new MyFrame(m, c1);
|
||||
|
||||
Controller c2 = new Controller(m);
|
||||
ViewNumber v2 = new ViewNumber(m, c2);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
public class Start {
|
||||
public static void main(String[] args) {
|
||||
javax.swing.SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Model m = new Model(); // Single shared model.
|
||||
|
||||
ControllerClicks c1 = new ControllerClicks(m);
|
||||
MyFrame v1 = new MyFrame(m, c1);
|
||||
|
||||
ViewNumber v2 = new ViewNumber(m, c1);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public abstract class View<T extends Controller> extends JFrame implements ModelListener{
|
||||
//instance variables
|
||||
protected Model m;
|
||||
protected T c;
|
||||
|
||||
//constructor
|
||||
public View(Model m, T c) {
|
||||
this.m = m;
|
||||
this.c = c;
|
||||
this.setLocationRelativeTo(null);
|
||||
m.addListener(this);
|
||||
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void update();
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public abstract class View<T extends Controller> extends JFrame implements ModelListener{
|
||||
//instance variables
|
||||
protected Model m;
|
||||
protected T c;
|
||||
|
||||
//constructor
|
||||
public View(Model m, T c) {
|
||||
this.m = m;
|
||||
this.c = c;
|
||||
this.setLocationRelativeTo(null);
|
||||
m.addListener(this);
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract void update();
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import javax.swing.JLabel;
|
||||
|
||||
public class ViewNumber extends View<Controller>{
|
||||
//instance variable
|
||||
private JLabel label;
|
||||
|
||||
public ViewNumber(Model m, Controller c) {
|
||||
super(m, c);
|
||||
this.setTitle("View Number");
|
||||
this.setSize(300, 200);
|
||||
label = new JLabel();
|
||||
update();
|
||||
this.add(label);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
label.setText("Number of points is: " + m.numberOfPoints());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import javax.swing.JLabel;
|
||||
|
||||
public class ViewNumber extends View<Controller>{
|
||||
//instance variable
|
||||
private JLabel label;
|
||||
|
||||
public ViewNumber(Model m, Controller c) {
|
||||
super(m, c);
|
||||
label = new JLabel();
|
||||
update();
|
||||
this.add(label);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
label.setText("Number of points is: " + m.numberOfPoints());
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,3 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding=UTF-8
|
||||
version=1
|
||||
@@ -0,0 +1,4 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<launchPerspectives/>\r\n
|
||||
org.eclipse.debug.ui.save_dirty_editors_before_launch=always
|
||||
preferredTargets=default,org.eclipse.lsp4e.debug.toggleBreakpointTarget\:default|org.eclipse.lsp4e.debug.toggleBreakpointTarget\:org.eclipse.lsp4e.debug.toggleBreakpointTarget|
|
||||
@@ -0,0 +1,9 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.codeComplete.visibilityCheck=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
|
||||
org.eclipse.jdt.core.compiler.compliance=17
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.release=enabled
|
||||
org.eclipse.jdt.core.compiler.source=17
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.junit.content_assist_favorite_static_members_migrated=true
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.launching.PREF_VM_XML=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<vmSettings defaultVM\="57,org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType13,1683778295040" defaultVMConnector\="">\r\n <vmType id\="org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType">\r\n <vm id\="1683778295040" name\="jre" path\="C\:\\Users\\Danie\\.p2\\pool\\plugins\\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.6.v20230204-1729\\jre"/>\r\n </vmType>\r\n</vmSettings>\r\n
|
||||
@@ -0,0 +1,10 @@
|
||||
content_assist_lru_history=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><history maxLHS\="100" maxRHS\="10"/>
|
||||
content_assist_number_of_computers=17
|
||||
content_assist_proposals_background=255,255,255
|
||||
content_assist_proposals_foreground=0,0,0
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.ui.formatterprofiles.version=22
|
||||
spelling_locale_initialized=true
|
||||
typefilter_migrated_2=true
|
||||
useAnnotationsPrefPage=true
|
||||
useQuickDiffPrefPage=true
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jsch.core.hasChangedDefaultWin32SshHome=true
|
||||
@@ -0,0 +1,2 @@
|
||||
areThereWebServices=false
|
||||
eclipse.preferences.version=1
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.m2e.discovery.pref.projects=
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
knownEEFragments=
|
||||
@@ -0,0 +1,5 @@
|
||||
SWITCH_PERSPECTIVE_ON_PROJECT_CREATION=always
|
||||
eclipse.preferences.version=1
|
||||
platformState=1677130608974
|
||||
quickStart=false
|
||||
tipsAndTricks=true
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.ui.navigator.ProjectExplorer.filterActivation=\:org.eclipse.jdt.java.ui.filters.HidePackageDeclaration\:org.eclipse.jdt.java.ui.filters.HideOutputFolder\:org.eclipse.buildship.ui.navigator.filter.gradle.subProject\:org.eclipse.ui.navigator.resources.nested.HideTopLevelProjectIfNested\:org.eclipse.buildship.ui.navigator.filter.gradle.buildfolder\:org.eclipse.jdt.java.ui.filters.HideEmptyInnerPackages\:org.eclipse.jst.j2ee.navigator.ui.filters.jetemitters\:org.eclipse.jdt.java.ui.filters.HideInnerClassFiles\:org.eclipse.ui.navigator.resources.filters.startsWithDot\:org.eclipse.jdt.java.ui.filters.HideEmptyLibraryContainers\:org.eclipse.jdt.java.ui.filters.HideImportDeclaration\:org.eclipse.jdt.java.ui.filters.HideSyntheticMembers\:org.eclipse.ui.navigator.resources.nested.HideFolderWhenProjectIsShownAsNested\:
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
showIntro=false
|
||||
@@ -0,0 +1,10 @@
|
||||
//org.eclipse.ui.commands/state/org.eclipse.ui.navigator.resources.nested.changeProjectPresentation/org.eclipse.ui.commands.radioState=false
|
||||
//org.eclipse.ui.commands/state/org.eclipse.wst.xml.views.XPathView.processor.xpathprocessor/org.eclipse.ui.commands.radioState=xpath10
|
||||
PLUGINS_NOT_ACTIVATED_ON_STARTUP=;org.eclipse.m2e.discovery;
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_BG_END=255,255,255
|
||||
org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_BG_START=255,255,255
|
||||
org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_TEXT_COLOR=16,16,16
|
||||
org.eclipse.ui.workbench.ACTIVE_TAB_BG_END=255,255,255
|
||||
org.eclipse.ui.workbench.ACTIVE_TAB_BG_START=255,255,255
|
||||
org.eclipse.ui.workbench.INACTIVE_TAB_BG_START=242,242,242
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
processedSchemes=,eclipse+command,eclipse+mpc
|
||||
@@ -0,0 +1,9 @@
|
||||
eclipse.preferences.version=1
|
||||
fontPropagated=true
|
||||
org.eclipse.wst.jsdt.ui.editor.tab.width=
|
||||
org.eclipse.wst.jsdt.ui.formatterprofiles.version=11
|
||||
org.eclipse.wst.jsdt.ui.javadoclocations.migrated=true
|
||||
proposalOrderMigrated=true
|
||||
tabWidthPropagated=true
|
||||
useAnnotationsPrefPage=true
|
||||
useQuickDiffPrefPage=true
|
||||
@@ -0,0 +1,3 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.wst.ws.service.policy.ui.servicepols.wsiprofilecomp.wsiap.defaultProtocol=http\://schemas.xmlsoap.org/wsdl/soap/
|
||||
org.eclipse.wst.ws.service.policy.ui.servicepols.wsiprofilecomp.wsissbp.defaultProtocol=http\://schemas.xmlsoap.org/wsdl/soap/
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/Question2/src/Start.java"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="Start"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Question2"/>
|
||||
</launchConfiguration>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/Question1/src/Start.java"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="Start"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Question1"/>
|
||||
</launchConfiguration>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/Question1/src/Test.java"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="Test"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Question1"/>
|
||||
</launchConfiguration>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="org.eclipse.debug.ui.SCOPED_SAVE_SELECTION_DIALOG">
|
||||
<item key="DIALOG_WIDTH" value="423"/>
|
||||
<item key="DIALOG_HEIGHT" value="493"/>
|
||||
<item key="DIALOG_FONT_NAME" value="1|Segoe UI|9.0|0|WINDOWS|1|-18|0|0|0|400|0|0|0|1|0|0|0|0|Segoe UI"/>
|
||||
</section>
|
||||
</section>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchHistory>
|
||||
<launchGroup id="org.eclipse.debug.ui.launchGroup.debug">
|
||||
<mruHistory>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="Start (1)"/> "/>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="Test"/> "/>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="Start"/> "/>
|
||||
</mruHistory>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
<launchGroup id="org.eclipse.debug.ui.launchGroup.profile">
|
||||
<mruHistory/>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
<launchGroup id="org.eclipse.eclemma.ui.launchGroup.coverage">
|
||||
<mruHistory>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="Start (1)"/> "/>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="Test"/> "/>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="Start"/> "/>
|
||||
</mruHistory>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
<launchGroup id="org.eclipse.ui.externaltools.launchGroup">
|
||||
<mruHistory/>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
<launchGroup id="org.eclipse.debug.ui.launchGroup.run">
|
||||
<mruHistory>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="Start (1)"/> "/>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="Test"/> "/>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="Start"/> "/>
|
||||
</mruHistory>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
</launchHistory>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>.org.eclipse.egit.core.cmp</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user