Restore
This commit is contained in:
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.
@@ -0,0 +1 @@
|
||||
java
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user