NoopWindowManager.java
001 /*
002  * SPDX-License-Identifier: Apache-2.0
003  *
004  * Copyright 2008-2017 the original author or authors.
005  *
006  * Licensed under the Apache License, Version 2.0 (the "License");
007  * you may not use this file except in compliance with the License.
008  * You may obtain a copy of the License at
009  *
010  *     http://www.apache.org/licenses/LICENSE-2.0
011  *
012  * Unless required by applicable law or agreed to in writing, software
013  * distributed under the License is distributed on an "AS IS" BASIS,
014  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015  * See the License for the specific language governing permissions and
016  * limitations under the License.
017  */
018 package org.codehaus.griffon.runtime.core.view;
019 
020 import griffon.core.GriffonApplication;
021 import griffon.core.view.WindowManager;
022 
023 import javax.annotation.Nonnull;
024 import javax.annotation.Nullable;
025 import javax.inject.Inject;
026 import java.util.Collection;
027 import java.util.Collections;
028 import java.util.Set;
029 
030 import static java.util.Objects.requireNonNull;
031 
032 /**
033  @author Andres Almiray
034  @since 2.0.0
035  */
036 public final class NoopWindowManager implements WindowManager<Object> {
037     private final GriffonApplication application;
038 
039     @Inject
040     public NoopWindowManager(@Nonnull GriffonApplication application) {
041         this.application = requireNonNull(application, "Argument 'application' must not be null");
042     }
043 
044     @Nullable
045     @Override
046     public Object findWindow(@Nonnull String name) {
047         return null;
048     }
049 
050     @Nullable
051     @Override
052     public Object getAt(int index) {
053         return null;
054     }
055 
056     @Nullable
057     @Override
058     public Object getStartingWindow() {
059         return null;
060     }
061 
062     @Nonnull
063     @Override
064     public Collection<Object> getWindows() {
065         return Collections.emptyList();
066     }
067 
068     @Nonnull
069     @Override
070     public Set<String> getWindowNames() {
071         return Collections.emptySet();
072     }
073 
074     @Nullable
075     @Override
076     public String findWindowName(@Nonnull Object window) {
077         return null;
078     }
079 
080     @Override
081     public int indexOf(@Nonnull Object window) {
082         return -1;
083     }
084 
085     @Override
086     public void attach(@Nonnull String name, @Nonnull Object window) {
087     }
088 
089     @Override
090     public void detach(@Nonnull String name) {
091     }
092 
093     @Override
094     public void show(@Nonnull Object window) {
095     }
096 
097     @Override
098     public void show(@Nonnull String name) {
099     }
100 
101     @Override
102     public void hide(@Nonnull Object window) {
103     }
104 
105     @Override
106     public void hide(@Nonnull String name) {
107     }
108 
109     @Override
110     public boolean canShutdown(@Nonnull GriffonApplication app) {
111         return true;
112     }
113 
114     @Override
115     public void onShutdown(@Nonnull GriffonApplication app) {
116     }
117 
118     @Override
119     public int countVisibleWindows() {
120         return 0;
121     }
122 
123     @Override
124     public boolean isAutoShutdown() {
125         return application.getConfiguration().getAsBoolean("application.autoShutdown"true);
126     }
127 }