litesoft
@ 947
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.GWT.client.iconservice; import java.util.*; import org.litesoft.GWT.client.taskbar.*; public class FavoritesManager { public static final FavoritesManager INSTANCE = new FavoritesManager(); private List mFavorites = new ArrayList(); public static final TaskbarFavoriteEntry[] EMPTY_ARRAY = new TaskbarFavoriteEntry[0]; private TaskbarHelper mTaskbarHelper; private FavoritesManager() { } public void addToFavorites( PersistentTaskbarFavoritePackage pFavorite ) { if ( mTaskbarHelper != null ) { mFavorites.add( new TaskbarFavoriteEntry( pFavorite.getFactoryRef() ) ); mTaskbarHelper.updateFavoritesDisplay( mFavorites ); } } public void removeFavorite( TaskbarItem pItem ) { TaskbarEntry taskbarEntry = pItem.getEntry(); int indx = mFavorites.indexOf( taskbarEntry ); if ( indx >= 0 ) { mFavorites.remove( indx ); mTaskbarHelper.updateFavoritesDisplay( mFavorites ); } } public void moveFavoriteUp( TaskbarItem pItem ) { TaskbarEntry taskbarEntry = pItem.getEntry(); if ( taskbarEntry != null ) { int currentIndex = mFavorites.indexOf( taskbarEntry ); Object o = mFavorites.remove( currentIndex ); if ( (currentIndex - 1) < 0 ) { currentIndex = 0; } else { currentIndex--; } mFavorites.add( currentIndex, o ); mTaskbarHelper.updateFavoritesDisplay( mFavorites ); } } public void moveFavoriteDown( TaskbarItem pItem ) { TaskbarEntry taskbarEntry = pItem.getEntry(); if ( taskbarEntry != null ) { int currentIndex = mFavorites.indexOf( taskbarEntry ); int totalFavorites = mFavorites.size(); Object o = mFavorites.remove( currentIndex ); if ( (currentIndex + 1) >= totalFavorites ) { currentIndex = totalFavorites - 1; } else { currentIndex++; } mFavorites.add( currentIndex, o ); mTaskbarHelper.updateFavoritesDisplay( mFavorites ); } } public TaskbarFavoriteEntry[] getFavoritesForDisplay() { return toArray( mFavorites ); } private TaskbarFavoriteEntry[] toArray( List pFavorites ) { if ( pFavorites.isEmpty() ) { return FavoritesManager.EMPTY_ARRAY; } TaskbarFavoriteEntry[] rv = new TaskbarFavoriteEntry[pFavorites.size()]; for ( int i = 0; i < pFavorites.size(); i++ ) { rv[i] = (TaskbarFavoriteEntry) pFavorites.get( i ); } return rv; } public void setTaskbarHelper( TaskbarHelper pTaskbarHelper ) { mTaskbarHelper = pTaskbarHelper; } } |