Package com.biglybt.ui.swt.mdi
Class BaseMDI
- java.lang.Object
-
- com.biglybt.ui.swt.skin.SWTSkinObjectAdapter
-
- com.biglybt.ui.swt.views.skin.SkinView
-
- com.biglybt.ui.swt.mdi.BaseMDI
-
- All Implemented Interfaces:
UIUpdatable
,MultipleDocumentInterface
,MultipleDocumentInterfaceSWT
,SWTSkinObjectListener
public abstract class BaseMDI extends SkinView implements MultipleDocumentInterfaceSWT, UIUpdatable
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
AUTOOPENINFO_DS
static java.lang.String
AUTOOPENINFO_PARENTID
static java.lang.String
AUTOOPENINFO_TITLE
private java.lang.Object
autoOpenLock
private TimerEvent
autoOpenSaver
static java.lang.String
CLOSEABLECONFIG_INITIALID
private java.lang.String
closeableConfigFile
private boolean
closed
private MdiEntrySWT
currentEntry
private java.lang.String
initialDef
private java.lang.String
initialID
private boolean
initialized
private java.lang.String
lastValidViewID
private java.util.List<MdiListener>
listeners
private java.util.List<MdiEntryLoadedListener>
listLoadListeners
private java.util.List<MdiSWTMenuHackListener>
listMenuHackListners
private java.util.LinkedHashMap<java.lang.String,java.util.Map>
mapAutoOpen
mapAutoOpen: Map<ViewID, AutoOpenInfo> AutoOpenInfo: Map<String, Object> "title" : String "datasource" : misc "parentID" : Stringprivate boolean
mapAutoOpenLoaded
private java.util.Map<java.lang.String,MdiEntryCreationListener>
mapIdToCreationListener
private java.util.Map<java.lang.String,MdiEntryCreationListener2>
mapIdToCreationListener2
private java.util.Map<java.lang.String,BaseMdiEntry>
mapIdToEntry
private UISWTView
parentView
private java.lang.Class<?>
pluginDataSourceType
private java.lang.String[]
preferredOrder
private UISWTInstanceImpl.SWTViewListener
swtViewListener
private java.lang.String
viewID
-
Fields inherited from interface com.biglybt.ui.mdi.MultipleDocumentInterface
SIDEBAR_HEADER_DASHBOARD, SIDEBAR_HEADER_DEVICES, SIDEBAR_HEADER_DISCOVERY, SIDEBAR_HEADER_ORDER_DEFAULT, SIDEBAR_HEADER_PLUGINS, SIDEBAR_HEADER_TRANSFERS, SIDEBAR_HEADER_VUZE, SIDEBAR_POS_FIRST, SIDEBAR_SECTION_ACTIVITIES, SIDEBAR_SECTION_ALL_TRACKERS, SIDEBAR_SECTION_ALLPEERS, SIDEBAR_SECTION_ALLPIECES, SIDEBAR_SECTION_ARCHIVED_DOWNLOADS, SIDEBAR_SECTION_BETAPROGRAM, SIDEBAR_SECTION_CHAT, SIDEBAR_SECTION_CLIENT_STATS, SIDEBAR_SECTION_CONFIG, SIDEBAR_SECTION_DEVICES, SIDEBAR_SECTION_DISK_OPS, SIDEBAR_SECTION_DOWNLOAD_HISTORY, SIDEBAR_SECTION_LIBRARY, SIDEBAR_SECTION_LIBRARY_CAT_INSTANCES, SIDEBAR_SECTION_LIBRARY_CD, SIDEBAR_SECTION_LIBRARY_DL, SIDEBAR_SECTION_LIBRARY_TAG_INSTANCES, SIDEBAR_SECTION_LIBRARY_UNOPENED, SIDEBAR_SECTION_LOGGER, SIDEBAR_SECTION_MY_SHARES, SIDEBAR_SECTION_MY_TRACKER, SIDEBAR_SECTION_PLUGINS, SIDEBAR_SECTION_SEARCH, SIDEBAR_SECTION_SUBSCRIPTIONS, SIDEBAR_SECTION_TAG_DISCOVERY, SIDEBAR_SECTION_TAGS, SIDEBAR_SECTION_TORRENT_DETAILS, SIDEBAR_SECTION_TORRENT_OPTIONS, SIDEBAR_SECTION_WELCOME, SIDEBAR_TRANSFERS_SECTION_ORDER
-
Fields inherited from interface com.biglybt.ui.swt.skin.SWTSkinObjectListener
EVENT_CREATE_REQUEST, EVENT_CREATED, EVENT_DATASOURCE_CHANGED, EVENT_DESTROY, EVENT_HIDE, EVENT_LANGUAGE_CHANGE, EVENT_OBFUSCATE, EVENT_SELECT, EVENT_SHOW, NAMES
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addItem(BaseMdiEntry entry)
void
addListener(MdiEntryLoadedListener l)
void
addListener(MdiListener l)
void
addListener(MdiSWTMenuHackListener l)
private void
autoOpenUpdated()
private boolean
canCreateEntryByCreationListener(java.lang.String id)
boolean
canShowEntryByID(java.lang.String id)
BaseMdiEntry
closeEntry(MdiEntry entry, boolean userInitiated)
CloseMdiEntry
void
closeEntry(java.lang.String id)
CloseMdiEntry
with id and remove from auto-open listBaseMdiEntry
closeEntryByID(java.lang.String id)
CloseMdiEntry
of idprotected BaseMdiEntry
closeEntryByID(java.lang.String id, boolean userInitiated)
protected MdiEntry
createEntryByCreationListener(java.lang.String id, java.util.Map<?,?> autoOpenInfo)
MdiEntry
createEntryFromEventListener(java.lang.String parentID, UISWTViewEventListener l, java.lang.String id, boolean closeable, java.lang.Object datasource, java.lang.String preferedAfterID)
Deprecated.Use createEntryFromHolder(parentEntryID, null, new UISWTViewEventListenerHolder(id, l, datasource, null), id, closeable, preferedAfterID);abstract MdiEntry
createEntryFromSkinRef(java.lang.String parentEntryID, java.lang.String id, java.lang.String configID, java.lang.String title, ViewTitleInfo titleInfo, java.lang.Object params, boolean closeable, java.lang.String preferedAfterID)
If you prefix the 'preferedAfterID' string with '~' then the operation will actually switch to 'preferedBeforeID'private boolean
createIfAutoOpen(java.lang.String id)
void
deregisterEntry(java.lang.String id, MdiEntryCreationListener l)
void
deregisterEntry(java.lang.String id, MdiEntryCreationListener2 l)
boolean
entryExists(java.lang.String id)
void
fillMenu(org.eclipse.swt.widgets.Menu menu, MdiEntry entry, java.lang.String menuID)
java.util.List<MdiEntry>
getChildrenOf(java.lang.String id)
MdiEntrySWT
getCurrentEntry()
java.lang.Class
getDataSourceType()
MdiEntrySWT[]
getEntries()
<T extends MdiEntry>
T[]getEntries(T[] array)
int
getEntriesCount()
MdiEntrySWT
getEntry(java.lang.String id)
MdiEntrySWT
getEntryBySkinView(java.lang.Object skinView)
static BaseMdiEntry
getEntryFromSkinObject(PluginUISWTSkinObject pluginSkinObject)
MdiSWTMenuHackListener[]
getMenuHackListeners()
java.lang.String
getMenuIdPrefix()
UISWTView
getParentView()
java.lang.String[]
getPreferredOrder()
java.lang.String
getUpdateUIName()
A name for this UIUpdatable so we can track who's being badjava.lang.String
getViewID()
boolean
isInitialized()
protected void
itemSelected(MdiEntry entry)
private void
loadCloseables()
boolean
loadEntryByID(java.lang.String id, boolean activate)
boolean
loadEntryByID(java.lang.String id, boolean activate, boolean onlyLoadOnce, java.lang.Object datasource)
abstract void
popoutEntry(MdiEntry entry, boolean onTop)
void
popoutEntryByID(java.lang.String id, java.lang.Object datasource, boolean onTop)
private boolean
processAutoOpenMap(java.lang.String id, java.util.Map<?,?> autoOpenInfo, UISWTViewBuilderCore builder)
void
registerEntry(java.lang.String id, MdiEntryCreationListener l)
void
registerEntry(java.lang.String id, MdiEntryCreationListener2 l)
private void
removeChildrenOf(java.lang.String id)
void
removeEntryAutoOpen(java.lang.String id)
void
removeItem(MdiEntry entry)
protected void
removeItem(MdiEntry entry, boolean removeChildren)
void
removeListener(MdiEntryLoadedListener l)
void
removeListener(MdiListener l)
void
removeListener(MdiSWTMenuHackListener l)
protected void
saveCloseables()
private void
saveCloseables(boolean interim)
void
setCloseableConfigFile(java.lang.String closeableConfigFile)
protected void
setCurrentEntry(MdiEntrySWT entry)
void
setDefaultEntryID(java.lang.String def)
void
setEntryAutoOpen(java.lang.String id, java.util.Map autoOpenInfo)
When an entry can not be opened (ie.protected abstract void
setEntryLoadedOnce(java.lang.String id)
void
setPreferredOrder(java.lang.String[] preferredOrder)
protected void
setupPluginViews()
boolean
showEntryByID(java.lang.String id)
boolean
showEntryByID(java.lang.String id, java.lang.Object datasource)
java.lang.Object
skinObjectDestroyed(SWTSkinObject skinObject, java.lang.Object params)
Skin Object was destroyedjava.lang.Object
skinObjectInitialShow(SWTSkinObject skinObject, java.lang.Object params)
void
triggerEntryLoadedListeners(MdiEntry entry)
protected void
triggerSelectionListener(MdiEntry newEntry, MdiEntry oldEntry)
java.lang.Object
updateLanguage(SWTSkinObject skinObject, java.lang.Object params)
skinObject needs to update any textvoid
updateUI()
Update your UI!protected abstract boolean
wasEntryLoadedOnce(java.lang.String id)
boolean
willEntryAutoOpen(java.lang.String id)
-
Methods inherited from class com.biglybt.ui.swt.views.skin.SkinView
getMainSkinObject, getMdiEntry, getSkin, getSkinObject, isDisposed, isVisible, setMainSkinObject, skinObjectCreated, skinObjectHidden, skinObjectShown
-
Methods inherited from class com.biglybt.ui.swt.skin.SWTSkinObjectAdapter
dataSourceChanged, eventOccured, skinObjectSelected
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.biglybt.ui.mdi.MultipleDocumentInterface
createHeader, isDisposed, isVisible, showEntry
-
Methods inherited from interface com.biglybt.ui.swt.mdi.MultipleDocumentInterfaceSWT
buildMDI, buildMDI, createEntry
-
-
-
-
Field Detail
-
CLOSEABLECONFIG_INITIALID
public static final java.lang.String CLOSEABLECONFIG_INITIALID
- See Also:
- Constant Field Values
-
pluginDataSourceType
private final java.lang.Class<?> pluginDataSourceType
-
viewID
private final java.lang.String viewID
-
parentView
private final UISWTView parentView
-
currentEntry
private MdiEntrySWT currentEntry
-
mapIdToCreationListener
private java.util.Map<java.lang.String,MdiEntryCreationListener> mapIdToCreationListener
-
mapIdToCreationListener2
private java.util.Map<java.lang.String,MdiEntryCreationListener2> mapIdToCreationListener2
-
mapIdToEntry
private final java.util.Map<java.lang.String,BaseMdiEntry> mapIdToEntry
-
listeners
private final java.util.List<MdiListener> listeners
-
listLoadListeners
private final java.util.List<MdiEntryLoadedListener> listLoadListeners
-
listMenuHackListners
private java.util.List<MdiSWTMenuHackListener> listMenuHackListners
-
autoOpenLock
private final java.lang.Object autoOpenLock
-
AUTOOPENINFO_TITLE
public static final java.lang.String AUTOOPENINFO_TITLE
- See Also:
- Constant Field Values
-
AUTOOPENINFO_DS
public static final java.lang.String AUTOOPENINFO_DS
- See Also:
- Constant Field Values
-
AUTOOPENINFO_PARENTID
public static final java.lang.String AUTOOPENINFO_PARENTID
- See Also:
- Constant Field Values
-
mapAutoOpen
private java.util.LinkedHashMap<java.lang.String,java.util.Map> mapAutoOpen
mapAutoOpen: Map<ViewID, AutoOpenInfo> AutoOpenInfo: Map<String, Object> "title" : String "datasource" : misc "parentID" : String
-
mapAutoOpenLoaded
private volatile boolean mapAutoOpenLoaded
-
autoOpenSaver
private TimerEvent autoOpenSaver
-
preferredOrder
private java.lang.String[] preferredOrder
-
closeableConfigFile
private java.lang.String closeableConfigFile
-
swtViewListener
private UISWTInstanceImpl.SWTViewListener swtViewListener
-
initialized
private volatile boolean initialized
-
closed
private volatile boolean closed
-
lastValidViewID
private java.lang.String lastValidViewID
-
initialID
private java.lang.String initialID
-
initialDef
private volatile java.lang.String initialDef
-
-
Constructor Detail
-
BaseMDI
public BaseMDI(java.lang.Class<?> pluginDataSourceType, java.lang.String viewID, UISWTView parentView)
-
-
Method Detail
-
addListener
public void addListener(MdiListener l)
- Specified by:
addListener
in interfaceMultipleDocumentInterface
-
removeListener
public void removeListener(MdiListener l)
- Specified by:
removeListener
in interfaceMultipleDocumentInterface
-
addListener
public void addListener(MdiEntryLoadedListener l)
- Specified by:
addListener
in interfaceMultipleDocumentInterface
-
removeListener
public void removeListener(MdiEntryLoadedListener l)
- Specified by:
removeListener
in interfaceMultipleDocumentInterface
-
triggerSelectionListener
protected void triggerSelectionListener(MdiEntry newEntry, MdiEntry oldEntry)
-
triggerEntryLoadedListeners
public void triggerEntryLoadedListeners(MdiEntry entry)
-
closeEntry
public final void closeEntry(java.lang.String id)
Description copied from interface:MultipleDocumentInterface
CloseMdiEntry
with id and remove from auto-open list- Specified by:
closeEntry
in interfaceMultipleDocumentInterface
-
closeEntry
public final BaseMdiEntry closeEntry(MdiEntry entry, boolean userInitiated)
Description copied from interface:MultipleDocumentInterface
CloseMdiEntry
- Specified by:
closeEntry
in interfaceMultipleDocumentInterface
userInitiated
- whether or not the user explicitly closed this view (used for the dynamic Downloading library view, for example...)- Returns:
- Entry that was closed, or null if entry wasn't closed (ie. didn't exist)
-
closeEntryByID
public BaseMdiEntry closeEntryByID(java.lang.String id)
Description copied from interface:MultipleDocumentInterface
CloseMdiEntry
of id- Specified by:
closeEntryByID
in interfaceMultipleDocumentInterface
- Returns:
- Entry that was closed, or null if entry wasn't closed (ie. didn't exist)
-
closeEntryByID
protected BaseMdiEntry closeEntryByID(java.lang.String id, boolean userInitiated)
-
getMenuIdPrefix
public java.lang.String getMenuIdPrefix()
-
createEntryFromEventListener
public final MdiEntry createEntryFromEventListener(java.lang.String parentID, UISWTViewEventListener l, java.lang.String id, boolean closeable, java.lang.Object datasource, java.lang.String preferedAfterID)
Deprecated.Use createEntryFromHolder(parentEntryID, null, new UISWTViewEventListenerHolder(id, l, datasource, null), id, closeable, preferedAfterID);- Specified by:
createEntryFromEventListener
in interfaceMultipleDocumentInterfaceSWT
-
createEntryFromSkinRef
public abstract MdiEntry createEntryFromSkinRef(java.lang.String parentEntryID, java.lang.String id, java.lang.String configID, java.lang.String title, ViewTitleInfo titleInfo, java.lang.Object params, boolean closeable, java.lang.String preferedAfterID)
Description copied from interface:MultipleDocumentInterface
If you prefix the 'preferedAfterID' string with '~' then the operation will actually switch to 'preferedBeforeID'- Specified by:
createEntryFromSkinRef
in interfaceMultipleDocumentInterface
- Returns:
-
getCurrentEntry
public MdiEntrySWT getCurrentEntry()
- Specified by:
getCurrentEntry
in interfaceMultipleDocumentInterface
- Specified by:
getCurrentEntry
in interfaceMultipleDocumentInterfaceSWT
-
setCurrentEntry
protected void setCurrentEntry(MdiEntrySWT entry)
-
getEntries
public MdiEntrySWT[] getEntries()
- Specified by:
getEntries
in interfaceMultipleDocumentInterface
- Specified by:
getEntries
in interfaceMultipleDocumentInterfaceSWT
-
getEntries
public <T extends MdiEntry> T[] getEntries(T[] array)
-
getEntry
public MdiEntrySWT getEntry(java.lang.String id)
- Specified by:
getEntry
in interfaceMultipleDocumentInterface
- Specified by:
getEntry
in interfaceMultipleDocumentInterfaceSWT
-
getEntryBySkinView
public MdiEntrySWT getEntryBySkinView(java.lang.Object skinView)
- Specified by:
getEntryBySkinView
in interfaceMultipleDocumentInterfaceSWT
- Parameters:
skinView
-- Returns:
- Since:
- 3.1.1.1
-
getUpdateUIName
public java.lang.String getUpdateUIName()
Description copied from interface:UIUpdatable
A name for this UIUpdatable so we can track who's being bad- Specified by:
getUpdateUIName
in interfaceUIUpdatable
- Returns:
- some name
-
registerEntry
public void registerEntry(java.lang.String id, MdiEntryCreationListener2 l)
- Specified by:
registerEntry
in interfaceMultipleDocumentInterface
-
deregisterEntry
public void deregisterEntry(java.lang.String id, MdiEntryCreationListener2 l)
- Specified by:
deregisterEntry
in interfaceMultipleDocumentInterface
-
createIfAutoOpen
private boolean createIfAutoOpen(java.lang.String id)
-
canCreateEntryByCreationListener
private boolean canCreateEntryByCreationListener(java.lang.String id)
-
createEntryByCreationListener
protected MdiEntry createEntryByCreationListener(java.lang.String id, java.util.Map<?,?> autoOpenInfo)
-
registerEntry
public void registerEntry(java.lang.String id, MdiEntryCreationListener l)
- Specified by:
registerEntry
in interfaceMultipleDocumentInterface
-
deregisterEntry
public void deregisterEntry(java.lang.String id, MdiEntryCreationListener l)
- Specified by:
deregisterEntry
in interfaceMultipleDocumentInterface
-
showEntryByID
public boolean showEntryByID(java.lang.String id)
- Specified by:
showEntryByID
in interfaceMultipleDocumentInterface
-
canShowEntryByID
public boolean canShowEntryByID(java.lang.String id)
-
showEntryByID
public boolean showEntryByID(java.lang.String id, java.lang.Object datasource)
- Specified by:
showEntryByID
in interfaceMultipleDocumentInterface
-
popoutEntryByID
public void popoutEntryByID(java.lang.String id, java.lang.Object datasource, boolean onTop)
-
popoutEntry
public abstract void popoutEntry(MdiEntry entry, boolean onTop)
-
skinObjectInitialShow
public java.lang.Object skinObjectInitialShow(SWTSkinObject skinObject, java.lang.Object params)
- Specified by:
skinObjectInitialShow
in classSkinView
- Returns:
-
skinObjectDestroyed
public java.lang.Object skinObjectDestroyed(SWTSkinObject skinObject, java.lang.Object params)
Description copied from class:SWTSkinObjectAdapter
Skin Object was destroyed- Overrides:
skinObjectDestroyed
in classSkinView
-
updateUI
public void updateUI()
Description copied from interface:UIUpdatable
Update your UI!- Specified by:
updateUI
in interfaceUIUpdatable
-
loadEntryByID
public boolean loadEntryByID(java.lang.String id, boolean activate)
- Specified by:
loadEntryByID
in interfaceMultipleDocumentInterface
-
loadEntryByID
public boolean loadEntryByID(java.lang.String id, boolean activate, boolean onlyLoadOnce, java.lang.Object datasource)
- Specified by:
loadEntryByID
in interfaceMultipleDocumentInterface
-
setEntryLoadedOnce
protected abstract void setEntryLoadedOnce(java.lang.String id)
-
wasEntryLoadedOnce
protected abstract boolean wasEntryLoadedOnce(java.lang.String id)
-
entryExists
public boolean entryExists(java.lang.String id)
- Specified by:
entryExists
in interfaceMultipleDocumentInterface
-
setDefaultEntryID
public void setDefaultEntryID(java.lang.String def)
- Specified by:
setDefaultEntryID
in interfaceMultipleDocumentInterface
-
setEntryAutoOpen
public void setEntryAutoOpen(java.lang.String id, java.util.Map autoOpenInfo)
Description copied from interface:MultipleDocumentInterface
When an entry can not be opened (ie. creation listener isn't registered yet), call this to store your open request- Specified by:
setEntryAutoOpen
in interfaceMultipleDocumentInterface
-
removeEntryAutoOpen
public void removeEntryAutoOpen(java.lang.String id)
- Specified by:
removeEntryAutoOpen
in interfaceMultipleDocumentInterface
-
willEntryAutoOpen
public boolean willEntryAutoOpen(java.lang.String id)
- Specified by:
willEntryAutoOpen
in interfaceMultipleDocumentInterface
-
autoOpenUpdated
private void autoOpenUpdated()
-
setupPluginViews
protected void setupPluginViews()
-
loadCloseables
private void loadCloseables()
-
saveCloseables
protected void saveCloseables()
-
saveCloseables
private void saveCloseables(boolean interim)
-
processAutoOpenMap
private boolean processAutoOpenMap(java.lang.String id, java.util.Map<?,?> autoOpenInfo, UISWTViewBuilderCore builder)
-
addItem
public void addItem(BaseMdiEntry entry)
-
itemSelected
protected void itemSelected(MdiEntry entry)
-
removeItem
public void removeItem(MdiEntry entry)
- Specified by:
removeItem
in interfaceMultipleDocumentInterface
-
removeItem
protected void removeItem(MdiEntry entry, boolean removeChildren)
-
removeChildrenOf
private void removeChildrenOf(java.lang.String id)
-
getChildrenOf
public java.util.List<MdiEntry> getChildrenOf(java.lang.String id)
- Specified by:
getChildrenOf
in interfaceMultipleDocumentInterface
-
updateLanguage
public java.lang.Object updateLanguage(SWTSkinObject skinObject, java.lang.Object params)
Description copied from class:SWTSkinObjectAdapter
skinObject needs to update any text- Overrides:
updateLanguage
in classSWTSkinObjectAdapter
-
setPreferredOrder
public void setPreferredOrder(java.lang.String[] preferredOrder)
- Specified by:
setPreferredOrder
in interfaceMultipleDocumentInterface
-
getPreferredOrder
public java.lang.String[] getPreferredOrder()
- Specified by:
getPreferredOrder
in interfaceMultipleDocumentInterface
-
getEntriesCount
public int getEntriesCount()
- Specified by:
getEntriesCount
in interfaceMultipleDocumentInterface
- Returns:
-
setCloseableConfigFile
public void setCloseableConfigFile(java.lang.String closeableConfigFile)
- Specified by:
setCloseableConfigFile
in interfaceMultipleDocumentInterfaceSWT
-
addListener
public void addListener(MdiSWTMenuHackListener l)
-
removeListener
public void removeListener(MdiSWTMenuHackListener l)
-
getMenuHackListeners
public MdiSWTMenuHackListener[] getMenuHackListeners()
-
fillMenu
public void fillMenu(org.eclipse.swt.widgets.Menu menu, MdiEntry entry, java.lang.String menuID)
-
isInitialized
public boolean isInitialized()
- Specified by:
isInitialized
in interfaceMultipleDocumentInterface
-
getEntryFromSkinObject
public static BaseMdiEntry getEntryFromSkinObject(PluginUISWTSkinObject pluginSkinObject)
-
getParentView
public UISWTView getParentView()
-
getViewID
public java.lang.String getViewID()
- Specified by:
getViewID
in interfaceMultipleDocumentInterface
-
getDataSourceType
public java.lang.Class getDataSourceType()
- Specified by:
getDataSourceType
in interfaceMultipleDocumentInterface
-
-