|
@@ -27,7 +27,7 @@ |
27 |
27 |
|
// Constructor... |
28 |
28 |
|
private final SubSystemFactory mSubSystemFactory; |
29 |
29 |
|
private final EditViewPanelFactory mEditViewPanelFactory; |
30 |
|
- |
private final PersistableProxy[] mPersistables; |
|
30 |
+ |
private final SubSystemPersister[] mPersisters; |
31 |
31 |
|
private final boolean mEditable; |
32 |
32 |
|
|
33 |
33 |
|
private String mVersion = BASE_VERSION; |
|
@@ -54,16 +54,16 @@ |
54 |
54 |
|
private boolean mNewAttributeVirtual; |
55 |
55 |
|
private AttributeSet mNewAttributeSet; |
56 |
56 |
|
|
57 |
|
- |
protected AbstractMain( SubSystemFactory pSubSystemFactory, EditViewPanelFactory pEditViewPanelFactory, PersistableProxy[] pPersistables, boolean pReadOnly ) |
|
57 |
+ |
protected AbstractMain( SubSystemFactory pSubSystemFactory, EditViewPanelFactory pEditViewPanelFactory, boolean pReadOnly, SubSystemPersister... pPersisters ) |
58 |
58 |
|
throws IOException |
59 |
59 |
|
{ |
60 |
60 |
|
mSubSystemFactory = pSubSystemFactory; |
61 |
61 |
|
mEditViewPanelFactory = pEditViewPanelFactory; |
62 |
|
- |
if ( (mPersistables = pPersistables).length == 0 ) |
|
62 |
+ |
if ( (mPersisters = pPersisters).length == 0 ) |
63 |
63 |
|
{ |
64 |
64 |
|
throw new IllegalArgumentException( "No Data Sources Provided" ); |
65 |
65 |
|
} |
66 |
|
- |
mEditable = !(pReadOnly || getLastPersistable().isReadOnly()); |
|
66 |
+ |
mEditable = !(pReadOnly || getLastPersister().isReadOnly()); |
67 |
67 |
|
|
68 |
68 |
|
unpersistAllObjects(); |
69 |
69 |
|
|
|
@@ -87,18 +87,18 @@ |
87 |
87 |
|
return mSubSystemForSaving; |
88 |
88 |
|
} |
89 |
89 |
|
|
90 |
|
- |
public void saveToPersistableForSaving( String[] pDataToSave ) |
|
90 |
+ |
public void persistSubSystem( SubSystemWriter pSubSystemWriter ) |
91 |
91 |
|
throws IOException |
92 |
92 |
|
{ |
93 |
93 |
|
if ( mEditable ) |
94 |
94 |
|
{ |
95 |
|
- |
getLastPersistable().saveLines( pDataToSave ); |
|
95 |
+ |
pSubSystemWriter.write(); |
96 |
96 |
|
} |
97 |
97 |
|
} |
98 |
98 |
|
|
99 |
|
- |
private PersistableProxy getLastPersistable() |
|
99 |
+ |
private SubSystemPersister getLastPersister() |
100 |
100 |
|
{ |
101 |
|
- |
return mPersistables[mPersistables.length - 1]; |
|
101 |
+ |
return mPersisters[mPersisters.length - 1]; |
102 |
102 |
|
} |
103 |
103 |
|
|
104 |
104 |
|
/** |
|
@@ -134,10 +134,10 @@ |
134 |
134 |
|
SystemMetaData zSMD = new SystemMetaData( mEditable, BASE_VERSION, mSubSystemFactory ); |
135 |
135 |
|
|
136 |
136 |
|
SubSystemMetaData lastSS = null; |
137 |
|
- |
for ( int i = 0; i < mPersistables.length; i++ ) |
|
137 |
+ |
for ( int i = 0; i < mPersisters.length; i++ ) |
138 |
138 |
|
{ |
139 |
|
- |
PersistableProxy zPersistable = mPersistables[i]; |
140 |
|
- |
lastSS = zSMD.unpersistSubSystemMetaData( i, zPersistable.getName(), zPersistable ).createObjectsFromLines( zPersistable.loadLines() ); |
|
139 |
+ |
SubSystemPersister zPersister = mPersisters[i]; |
|
140 |
+ |
lastSS = zSMD.unpersistSubSystemMetaData( i, zPersister ).loadObjects(); |
141 |
141 |
|
} |
142 |
142 |
|
zSMD.setRehydrated(); |
143 |
143 |
|
|
|
@@ -153,7 +153,9 @@ |
153 |
153 |
|
*/ |
154 |
154 |
|
public void start() |
155 |
155 |
|
{ |
156 |
|
- |
mEditViewPanelController = mEditViewPanelFactory.createEditViewPanelController( mEditable, getLastPersistable().getName(), mSystemMetaData.getObjectSets(), mSystemMetaData.getAttributeSets(), this, this, this, this ); |
|
156 |
+ |
mEditViewPanelController = mEditViewPanelFactory |
|
157 |
+ |
.createEditViewPanelController( mEditable, getLastPersister().getName(), mSystemMetaData.getObjectSets(), mSystemMetaData.getAttributeSets(), |
|
158 |
+ |
this, this, this, this ); |
157 |
159 |
|
|
158 |
160 |
|
mSystemMetaData.add( buildUI( mVersion, mEditViewPanelController ) ); |
159 |
161 |
|
|
|
@@ -238,7 +240,7 @@ |
238 |
240 |
|
/** |
239 |
241 |
|
* Called on the "UI" Event Thread |
240 |
242 |
|
*/ |
241 |
|
- |
protected void save( final String[] pDataToSave ) |
|
243 |
+ |
protected void save( final SubSystemWriter pSubSystemWriter ) |
242 |
244 |
|
{ |
243 |
245 |
|
postMainThreadRunnable( "Save Changes", new Runnable() |
244 |
246 |
|
{ |
|
@@ -254,7 +256,7 @@ |
254 |
256 |
|
{ |
255 |
257 |
|
try |
256 |
258 |
|
{ |
257 |
|
- |
saveToPersistableForSaving( pDataToSave ); |
|
259 |
+ |
persistSubSystem( pSubSystemWriter ); |
258 |
260 |
|
getSystemMetaData().clearChangeIndicators(); |
259 |
261 |
|
updateStatus( "Save Complete" ); |
260 |
262 |
|
} |
|
@@ -863,7 +865,7 @@ |
863 |
865 |
|
public void requestSave() |
864 |
866 |
|
{ |
865 |
867 |
|
updateStatus( "Saving..." ); |
866 |
|
- |
save( mSubSystemForSaving.toLinesObjects() ); |
|
868 |
+ |
save( mSubSystemForSaving.toSubSystemWriter() ); |
867 |
869 |
|
} |
868 |
870 |
|
|
869 |
871 |
|
@Override |