Diff
checker
テキスト
テキスト
画像
ドキュメント
Excel
フォルダ
Legal
Enterprise
デスクトップ
料金
ログイン
Diffchecker デスクトップのダウンロード
テキスト比較
2 つのテキスト ファイルの違いを見つける
ツール
履歴
ライブエディター
未変更行を折りたたむ
折り返しなし
レイアウト
分割
統合
比較精度
スマート
単語
文字
シンタックスハイライト
構文を選択
無視
テキスト変換
最初の差分へ移動
入力を編集
Diffchecker Desktop
Diffcheckerを実行する最も安全な方法。Diffchecker Desktopアプリを入手:あなたの差分はコンピューターから出ることはありません!
Desktopを入手
AbstractAction.java
作成日
7 年前
差分は期限切れになりません
クリア
エクスポート
共有
説明
41 削除
行
合計
削除
文字
合計
削除
この機能を引き続き使用するには、アップグレードしてください
Diff
checker
Pro
価格を見る
253 行
すべてコピー
76 追加
行
合計
追加
文字
合計
追加
この機能を引き続き使用するには、アップグレードしてください
Diff
checker
Pro
価格を見る
295 行
すべてコピー
/*
/*
* Copyright (c) 2008-2016 Haulmont.
* Copyright (c) 2008-2016 Haulmont.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*
*
*/
*/
package com.haulmont.cuba.gui.components;
package com.haulmont.cuba.gui.components;
コピー
コピー済み
コピー
コピー済み
import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList;
import com.haulmont.bali.events.EventHub;
import com.haulmont.cuba.core.global.AppBeans;
import com.haulmont.cuba.core.global.AppBeans;
import com.haulmont.cuba.core.global.Messages;
import com.haulmont.cuba.core.global.Messages;
コピー
コピー済み
コピー
コピー済み
import com.haulmont.cuba.core.global.UserSessionSource;
import com.haulmont.cuba.gui.icons.Icons;
import com.haulmont.cuba.gui.icons.Icons;
コピー
コピー済み
コピー
コピー済み
import com.haulmont.cuba.security.global.UserSession;
import javax.annotation.Nullable;
import javax.annotation.Nullable;
コピー
コピー済み
コピー
コピー済み
import java.beans.PropertyChange
Listener
;
import java.beans.PropertyChange
Event
;
import java.
beans.PropertyChangeSupport
;
import java.
util.Collection;
import java.util.
*
;
import java.util.List;
import java.util.Objects
;
import java.util.
function.Consumer
;
/**
/**
* Abstract class for GUI actions.
* Abstract class for GUI actions.
*/
*/
public abstract class AbstractAction implements Action {
public abstract class AbstractAction implements Action {
protected String id;
protected String id;
protected String caption;
protected String caption;
コピー
コピー済み
コピー
コピー済み
protected String description;
protected String description;
コピー
コピー済み
コピー
コピー済み
protected String icon;
protected String icon;
protected boolean enabled = true;
protected boolean enabled = true;
コピー
コピー済み
コピー
コピー済み
protected boolean visible = true;
protected boolean visible = true;
コピー
コピー済み
コピー
コピー済み
protected List<
Component.
ActionOwner> owners =
new ArrayList<>();
protected List<
ActionOwner> owners =
ImmutableList.of();
protected PropertyChangeSupport changeSupport;
protected Messages messages = AppBeans.get(Messages.NAME);
protected UserSession userSession;
protected KeyCombination shortcut;
protected KeyCombination shortcut;
protected boolean primary = false;
protected boolean primary = false;
コピー
コピー済み
コピー
コピー済み
protected EventHub eventHub;
// legacy field
@Deprecated
private Messages messages;
protected AbstractAction() {
// do not init messages here
}
protected AbstractAction(String id) {
protected AbstractAction(String id) {
コピー
コピー済み
コピー
コピー済み
UserSessionSource sessionSource = AppBeans.get(UserSessionSource.NAME);
userSession = sessionSource.getUserSession();
this.id = id;
this.id = id;
コピー
コピー済み
コピー
コピー済み
this.messages = AppBeans.get(Messages.NAME); // legacy behaviour
}
}
protected AbstractAction(String id, @Nullable String shortcut) {
protected AbstractAction(String id, @Nullable String shortcut) {
this(id);
this(id);
if (shortcut != null) {
if (shortcut != null) {
this.shortcut = KeyCombination.create(shortcut);
this.shortcut = KeyCombination.create(shortcut);
}
}
}
}
protected AbstractAction(String id, Status status) {
protected AbstractAction(String id, Status status) {
this(id);
this(id);
this.primary = status == Status.PRIMARY;
this.primary = status == Status.PRIMARY;
}
}
コピー
コピー済み
コピー
コピー済み
// lazy initializer
protected EventHub getEventHub() {
if (eventHub == null) {
eventHub = new EventHub();
}
return eventHub;
}
protected boolean hasSubscriptions(Class<?> eventClass) {
return eventHub != null && eventHub.hasSubscriptions(eventClass);
}
@Override
@Override
public String getId() {
public String getId() {
return id;
return id;
}
}
@Override
@Override
public String getCaption() {
public String getCaption() {
return caption == null ? getDefaultCaption() : caption;
return caption == null ? getDefaultCaption() : caption;
}
}
protected String getDefaultCaption() {
protected String getDefaultCaption() {
コピー
コピー済み
コピー
コピー済み
return messages.getMessage(getClass(), id);
if (messages != null) {
// legacy behaviour
return messages.getMessage(getClass(), id);
} else {
return null;
}
}
}
@Override
@Override
public void setCaption(String caption) {
public void setCaption(String caption) {
String oldValue = this.caption;
String oldValue = this.caption;
if (!Objects.equals(oldValue, caption)) {
if (!Objects.equals(oldValue, caption)) {
this.caption = caption;
this.caption = caption;
firePropertyChange(PROP_CAPTION, oldValue, caption);
firePropertyChange(PROP_CAPTION, oldValue, caption);
}
}
}
}
@Override
@Override
public String getDescription() {
public String getDescription() {
return description;
return description;
}
}
@Override
@Override
public void setDescription(String description) {
public void setDescription(String description) {
String oldValue = this.description;
String oldValue = this.description;
if (!Objects.equals(oldValue, description)) {
if (!Objects.equals(oldValue, description)) {
this.description = description;
this.description = description;
firePropertyChange(PROP_DESCRIPTION, oldValue, description);
firePropertyChange(PROP_DESCRIPTION, oldValue, description);
}
}
}
}
@Override
@Override
public KeyCombination getShortcutCombination() {
public KeyCombination getShortcutCombination() {
return shortcut;
return shortcut;
}
}
@Override
@Override
public void setShortcutCombination(KeyCombination shortcut) {
public void setShortcutCombination(KeyCombination shortcut) {
KeyCombination oldValue = this.shortcut;
KeyCombination oldValue = this.shortcut;
if (!Objects.equals(oldValue, shortcut)) {
if (!Objects.equals(oldValue, shortcut)) {
this.shortcut = shortcut;
this.shortcut = shortcut;
firePropertyChange(PROP_SHORTCUT, oldValue, shortcut);
firePropertyChange(PROP_SHORTCUT, oldValue, shortcut);
}
}
}
}
@Override
@Override
public void setShortcut(String shortcut) {
public void setShortcut(String shortcut) {
if (shortcut != null) {
if (shortcut != null) {
setShortcutCombination(KeyCombination.create(shortcut));
setShortcutCombination(KeyCombination.create(shortcut));
} else {
} else {
setShortcutCombination(null);
setShortcutCombination(null);
}
}
}
}
@Override
@Override
public String getIcon() {
public String getIcon() {
return icon;
return icon;
}
}
@Override
@Override
public void setIcon(String icon) {
public void setIcon(String icon) {
String oldValue = this.icon;
String oldValue = this.icon;
if (!Objects.equals(oldValue, icon)) {
if (!Objects.equals(oldValue, icon)) {
this.icon = icon;
this.icon = icon;
firePropertyChange(PROP_ICON, oldValue, icon);
firePropertyChange(PROP_ICON, oldValue, icon);
}
}
}
}
@Override
@Override
public void setIconFromSet(Icons.Icon icon) {
public void setIconFromSet(Icons.Icon icon) {
String iconName = AppBeans.get(Icons.class)
String iconName = AppBeans.get(Icons.class)
.get(icon);
.get(icon);
setIcon(iconName);
setIcon(iconName);
}
}
@Override
@Override
public boolean isEnabled() {
public boolean isEnabled() {
return enabled;
return enabled;
}
}
@Override
@Override
public void setEnabled(boolean enabled) {
public void setEnabled(boolean enabled) {
boolean oldValue = this.enabled;
boolean oldValue = this.enabled;
if (oldValue != enabled) {
if (oldValue != enabled) {
this.enabled = enabled;
this.enabled = enabled;
コピー
コピー済み
コピー
コピー済み
for (
Component.
ActionOwner owner : owners) {
for (
ActionOwner owner : owners) {
if (
owner != null &&
owner instanceof Component) {
if (
owner instanceof Component) {
((Component) owner).setEnabled(enabled);
((Component) owner).setEnabled(enabled);
}
}
}
}
firePropertyChange(PROP_ENABLED, oldValue, enabled);
firePropertyChange(PROP_ENABLED, oldValue, enabled);
}
}
}
}
@Override
@Override
public boolean isVisible() {
public boolean isVisible() {
return visible;
return visible;
}
}
@Override
@Override
public void setVisible(boolean visible) {
public void setVisible(boolean visible) {
boolean oldValue = this.visible;
boolean oldValue = this.visible;
if (oldValue != visible) {
if (oldValue != visible) {
this.visible = visible;
this.visible = visible;
コピー
コピー済み
コピー
コピー済み
for (
Component.
ActionOwner owner : owners) {
for (
ActionOwner owner : owners) {
if (
owner != null &&
owner instanceof Component) {
if (
owner instanceof Component) {
((Component) owner).setVisible(visible);
((Component) owner).setVisible(visible);
}
}
}
}
firePropertyChange(PROP_VISIBLE, oldValue, visible);
firePropertyChange(PROP_VISIBLE, oldValue, visible);
}
}
}
}
@Override
@Override
コピー
コピー済み
コピー
コピー済み
public Collection<
Component.
ActionOwner> getOwners() {
public Collection<
ActionOwner> getOwners() {
return
Collections.unmodifiableCollection(
owners
)
;
return
owners
;
}
}
@Override
@Override
コピー
コピー済み
コピー
コピー済み
public
Component.
ActionOwner getOwner() {
public
ActionOwner getOwner() {
return owners.isEmpty() ? null : owners.get(0);
return owners.isEmpty() ? null : owners.get(0);
}
}
@Override
@Override
コピー
コピー済み
コピー
コピー済み
public void addOwner(
Component.
ActionOwner actionOwner) {
public void addOwner(
ActionOwner actionOwner) {
if (!owners.contains(actionOwner)) {
if (!owners.contains(actionOwner)) {
コピー
コピー済み
コピー
コピー済み
owners.add(actionOwner);
if (owners.isEmpty()) {
owners = ImmutableList.of(actionOwner);
} else {
owners = ImmutableList.<ActionOwner>builder()
.addAll(owners)
.add(actionOwner)
.build();
}
}
}
}
}
@Override
@Override
コピー
コピー済み
コピー
コピー済み
public void removeOwner(
Component.
ActionOwner actionOwner) {
public void removeOwner(
ActionOwner actionOwner) {
owners.remove(actionOwner);
if (!owners.isEmpty()) {
if (owners.size() == 1 && owners.get(0) == actionOwner) {
owners = ImmutableList.of();
} else {
owners = ImmutableList.<ActionOwner>builder()
.addAll(Collections2.filter(owners, o -> o != actionOwner))
.build();
}
}
}
}
@Override
@Override
コピー
コピー済み
コピー
コピー済み
public void addPropertyChangeListener(
PropertyChange
Listener
listener) {
public void addPropertyChangeListener(
Consumer<
PropertyChange
Event>
listener) {
if (changeSupport == null) {
getEventHub().subscribe(PropertyChangeEvent.class,
listener);
changeSupport = new PropertyChangeSupport(this);
}
changeSupport.addPropertyChangeListener(
listener);
}
}
@Override
@Override
コピー
コピー済み
コピー
コピー済み
public void removePropertyChangeListener(
PropertyChange
Listener
listener) {
public void removePropertyChangeListener(
Consumer<
PropertyChange
Event>
listener) {
if (
changeSupport =
= null) {
if (
eventHub !
= null) {
return
;
eventHub.unsubscribe(PropertyChangeEvent.class, listener)
;
}
}
コピー
コピー済み
コピー
コピー済み
changeSupport.removePropertyChangeListener(listener);
}
}
protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
コピー
コピー済み
コピー
コピー済み
if (
changeSupport == null ||
Objects.equals(oldValue, newValue)) {
if (
Objects.equals(oldValue, newValue)) {
return;
return;
}
}
コピー
コピー済み
コピー
コピー済み
changeSupport.firePropertyChange(
propertyName, oldValue, newValue);
if (eventHub != null && eventHub.hasSubscriptions(PropertyChangeEvent.class)) {
PropertyChangeEvent event = new PropertyChangeEvent(this,
propertyName, oldValue, newValue);
eventHub.publish(PropertyChangeEvent.class, event);
}
}
}
@Override
@Override
public void refreshState() {
public void refreshState() {
}
}
コピー
コピー済み
コピー
コピー済み
/**
* @return true if action is primary or false otherwise
*/
public boolean isPrimary() {
public boolean isPrimary() {
return primary;
return primary;
}
}
コピー
コピー済み
コピー
コピー済み
/**
* Sets whether action is primary or not.
*
* @param primary primary
*/
public void setPrimary(boolean primary) {
public void setPrimary(boolean primary) {
this.primary = primary;
this.primary = primary;
}
}
}
}
保存された差分
原文
ファイルを開く
/* * Copyright (c) 2008-2016 Haulmont. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package com.haulmont.cuba.gui.components; import com.haulmont.cuba.core.global.AppBeans; import com.haulmont.cuba.core.global.Messages; import com.haulmont.cuba.core.global.UserSessionSource; import com.haulmont.cuba.gui.icons.Icons; import com.haulmont.cuba.security.global.UserSession; import javax.annotation.Nullable; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.util.*; /** * Abstract class for GUI actions. */ public abstract class AbstractAction implements Action { protected String id; protected String caption; protected String description; protected String icon; protected boolean enabled = true; protected boolean visible = true; protected List<Component.ActionOwner> owners = new ArrayList<>(); protected PropertyChangeSupport changeSupport; protected Messages messages = AppBeans.get(Messages.NAME); protected UserSession userSession; protected KeyCombination shortcut; protected boolean primary = false; protected AbstractAction(String id) { UserSessionSource sessionSource = AppBeans.get(UserSessionSource.NAME); userSession = sessionSource.getUserSession(); this.id = id; } protected AbstractAction(String id, @Nullable String shortcut) { this(id); if (shortcut != null) { this.shortcut = KeyCombination.create(shortcut); } } protected AbstractAction(String id, Status status) { this(id); this.primary = status == Status.PRIMARY; } @Override public String getId() { return id; } @Override public String getCaption() { return caption == null ? getDefaultCaption() : caption; } protected String getDefaultCaption() { return messages.getMessage(getClass(), id); } @Override public void setCaption(String caption) { String oldValue = this.caption; if (!Objects.equals(oldValue, caption)) { this.caption = caption; firePropertyChange(PROP_CAPTION, oldValue, caption); } } @Override public String getDescription() { return description; } @Override public void setDescription(String description) { String oldValue = this.description; if (!Objects.equals(oldValue, description)) { this.description = description; firePropertyChange(PROP_DESCRIPTION, oldValue, description); } } @Override public KeyCombination getShortcutCombination() { return shortcut; } @Override public void setShortcutCombination(KeyCombination shortcut) { KeyCombination oldValue = this.shortcut; if (!Objects.equals(oldValue, shortcut)) { this.shortcut = shortcut; firePropertyChange(PROP_SHORTCUT, oldValue, shortcut); } } @Override public void setShortcut(String shortcut) { if (shortcut != null) { setShortcutCombination(KeyCombination.create(shortcut)); } else { setShortcutCombination(null); } } @Override public String getIcon() { return icon; } @Override public void setIcon(String icon) { String oldValue = this.icon; if (!Objects.equals(oldValue, icon)) { this.icon = icon; firePropertyChange(PROP_ICON, oldValue, icon); } } @Override public void setIconFromSet(Icons.Icon icon) { String iconName = AppBeans.get(Icons.class) .get(icon); setIcon(iconName); } @Override public boolean isEnabled() { return enabled; } @Override public void setEnabled(boolean enabled) { boolean oldValue = this.enabled; if (oldValue != enabled) { this.enabled = enabled; for (Component.ActionOwner owner : owners) { if (owner != null && owner instanceof Component) { ((Component) owner).setEnabled(enabled); } } firePropertyChange(PROP_ENABLED, oldValue, enabled); } } @Override public boolean isVisible() { return visible; } @Override public void setVisible(boolean visible) { boolean oldValue = this.visible; if (oldValue != visible) { this.visible = visible; for (Component.ActionOwner owner : owners) { if (owner != null && owner instanceof Component) { ((Component) owner).setVisible(visible); } } firePropertyChange(PROP_VISIBLE, oldValue, visible); } } @Override public Collection<Component.ActionOwner> getOwners() { return Collections.unmodifiableCollection(owners); } @Override public Component.ActionOwner getOwner() { return owners.isEmpty() ? null : owners.get(0); } @Override public void addOwner(Component.ActionOwner actionOwner) { if (!owners.contains(actionOwner)) { owners.add(actionOwner); } } @Override public void removeOwner(Component.ActionOwner actionOwner) { owners.remove(actionOwner); } @Override public void addPropertyChangeListener(PropertyChangeListener listener) { if (changeSupport == null) { changeSupport = new PropertyChangeSupport(this); } changeSupport.addPropertyChangeListener(listener); } @Override public void removePropertyChangeListener(PropertyChangeListener listener) { if (changeSupport == null) { return; } changeSupport.removePropertyChangeListener(listener); } protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) { if (changeSupport == null || Objects.equals(oldValue, newValue)) { return; } changeSupport.firePropertyChange(propertyName, oldValue, newValue); } @Override public void refreshState() { } public boolean isPrimary() { return primary; } public void setPrimary(boolean primary) { this.primary = primary; } }
変更されたテキスト
ファイルを開く
/* * Copyright (c) 2008-2016 Haulmont. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package com.haulmont.cuba.gui.components; import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableList; import com.haulmont.bali.events.EventHub; import com.haulmont.cuba.core.global.AppBeans; import com.haulmont.cuba.core.global.Messages; import com.haulmont.cuba.gui.icons.Icons; import javax.annotation.Nullable; import java.beans.PropertyChangeEvent; import java.util.Collection; import java.util.List; import java.util.Objects; import java.util.function.Consumer; /** * Abstract class for GUI actions. */ public abstract class AbstractAction implements Action { protected String id; protected String caption; protected String description; protected String icon; protected boolean enabled = true; protected boolean visible = true; protected List<ActionOwner> owners = ImmutableList.of(); protected KeyCombination shortcut; protected boolean primary = false; protected EventHub eventHub; // legacy field @Deprecated private Messages messages; protected AbstractAction() { // do not init messages here } protected AbstractAction(String id) { this.id = id; this.messages = AppBeans.get(Messages.NAME); // legacy behaviour } protected AbstractAction(String id, @Nullable String shortcut) { this(id); if (shortcut != null) { this.shortcut = KeyCombination.create(shortcut); } } protected AbstractAction(String id, Status status) { this(id); this.primary = status == Status.PRIMARY; } // lazy initializer protected EventHub getEventHub() { if (eventHub == null) { eventHub = new EventHub(); } return eventHub; } protected boolean hasSubscriptions(Class<?> eventClass) { return eventHub != null && eventHub.hasSubscriptions(eventClass); } @Override public String getId() { return id; } @Override public String getCaption() { return caption == null ? getDefaultCaption() : caption; } protected String getDefaultCaption() { if (messages != null) { // legacy behaviour return messages.getMessage(getClass(), id); } else { return null; } } @Override public void setCaption(String caption) { String oldValue = this.caption; if (!Objects.equals(oldValue, caption)) { this.caption = caption; firePropertyChange(PROP_CAPTION, oldValue, caption); } } @Override public String getDescription() { return description; } @Override public void setDescription(String description) { String oldValue = this.description; if (!Objects.equals(oldValue, description)) { this.description = description; firePropertyChange(PROP_DESCRIPTION, oldValue, description); } } @Override public KeyCombination getShortcutCombination() { return shortcut; } @Override public void setShortcutCombination(KeyCombination shortcut) { KeyCombination oldValue = this.shortcut; if (!Objects.equals(oldValue, shortcut)) { this.shortcut = shortcut; firePropertyChange(PROP_SHORTCUT, oldValue, shortcut); } } @Override public void setShortcut(String shortcut) { if (shortcut != null) { setShortcutCombination(KeyCombination.create(shortcut)); } else { setShortcutCombination(null); } } @Override public String getIcon() { return icon; } @Override public void setIcon(String icon) { String oldValue = this.icon; if (!Objects.equals(oldValue, icon)) { this.icon = icon; firePropertyChange(PROP_ICON, oldValue, icon); } } @Override public void setIconFromSet(Icons.Icon icon) { String iconName = AppBeans.get(Icons.class) .get(icon); setIcon(iconName); } @Override public boolean isEnabled() { return enabled; } @Override public void setEnabled(boolean enabled) { boolean oldValue = this.enabled; if (oldValue != enabled) { this.enabled = enabled; for (ActionOwner owner : owners) { if (owner instanceof Component) { ((Component) owner).setEnabled(enabled); } } firePropertyChange(PROP_ENABLED, oldValue, enabled); } } @Override public boolean isVisible() { return visible; } @Override public void setVisible(boolean visible) { boolean oldValue = this.visible; if (oldValue != visible) { this.visible = visible; for (ActionOwner owner : owners) { if (owner instanceof Component) { ((Component) owner).setVisible(visible); } } firePropertyChange(PROP_VISIBLE, oldValue, visible); } } @Override public Collection<ActionOwner> getOwners() { return owners; } @Override public ActionOwner getOwner() { return owners.isEmpty() ? null : owners.get(0); } @Override public void addOwner(ActionOwner actionOwner) { if (!owners.contains(actionOwner)) { if (owners.isEmpty()) { owners = ImmutableList.of(actionOwner); } else { owners = ImmutableList.<ActionOwner>builder() .addAll(owners) .add(actionOwner) .build(); } } } @Override public void removeOwner(ActionOwner actionOwner) { if (!owners.isEmpty()) { if (owners.size() == 1 && owners.get(0) == actionOwner) { owners = ImmutableList.of(); } else { owners = ImmutableList.<ActionOwner>builder() .addAll(Collections2.filter(owners, o -> o != actionOwner)) .build(); } } } @Override public void addPropertyChangeListener(Consumer<PropertyChangeEvent> listener) { getEventHub().subscribe(PropertyChangeEvent.class, listener); } @Override public void removePropertyChangeListener(Consumer<PropertyChangeEvent> listener) { if (eventHub != null) { eventHub.unsubscribe(PropertyChangeEvent.class, listener); } } protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) { if (Objects.equals(oldValue, newValue)) { return; } if (eventHub != null && eventHub.hasSubscriptions(PropertyChangeEvent.class)) { PropertyChangeEvent event = new PropertyChangeEvent(this, propertyName, oldValue, newValue); eventHub.publish(PropertyChangeEvent.class, event); } } @Override public void refreshState() { } /** * @return true if action is primary or false otherwise */ public boolean isPrimary() { return primary; } /** * Sets whether action is primary or not. * * @param primary primary */ public void setPrimary(boolean primary) { this.primary = primary; } }
違いを見つける