@Override public Lookup getLookup() { return new ProxyLookup(super.getLookup(), intern); }
@Override public BinaryExecSupport convert(MultiDataObject obj) { return new BinaryExecSupport(obj.getPrimaryEntry()); }
@Override protected Node createNodeDelegate() { //FIXME quick workaround for AGROSENSE-582, investigate and apply proper fix if (isobusTaskData != null){ return new TaskDataRootNode(isobusTaskData, super.createNodeDelegate()); }else{ return super.createNodeDelegate(); } }
/** This constructor is added for backward compatibility, MultiDataObject should be * properly constructed using the MultiFileLoader. * @param fo the primary file object * @param loader loader of this data object * @deprecated do not use this constructor, it is for backward compatibility of * {@link #DataShadow} and {@link #DataFolder} only * @since 1.13 */ MultiDataObject(FileObject fo, DataLoader loader) throws DataObjectExistsException { super(fo, loader); primary = createPrimaryEntry (this, getPrimaryFile ()); }
/** Does the work which was originaly done in MDO.files() method. */ private void doLazyWork() { synchronized (this) { if (!lazyWorkDone) { lazyWorkDone = true; synchronized ( mymdo.synchObjectSecondary() ) { mymdo.removeAllInvalid (); primaryFile = mymdo.getPrimaryFile(); secondary = mymdo.getSecondary(); } } } }
public boolean isMoveAllowed() { return !getPrimaryFile ().isReadOnly () && !existReadOnlySecondary(); }
private Collection<MultiDataObject.Entry> collectLocaleEntries(Collection<MultiDataObject.Entry> col) { for (String bundleName : getBundleNames()) { MultiDataObject dobj = ResourceUtils.getPropertiesDataObject(sourceFile, bundleName, false); if (dobj != null) { if (col == null) col = new LinkedList<MultiDataObject.Entry>(); col.add(dobj.getPrimaryEntry()); col.addAll(dobj.secondaryEntries()); try { String baseName = dobj.getName() + "_"; // NOI18N for (FileObject fo : dobj.getPrimaryFile().getParent().getChildren()) { String fileName = fo.getNameExt(); if (fileName.endsWith(".properties") && fileName.startsWith(baseName)) { // NOI18N DataObject dobj2 = DataObject.find(fo); if (dobj2 instanceof PropertiesDataObject) { col.add(((MultiDataObject)dobj2).getPrimaryEntry()); } } } } catch (IOException ex) { ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex); } } } DesignResourceMap parent = getDesignParent(); return parent != null ? parent.collectLocaleEntries(col) : col; }
protected DataObject handleCreateFromTemplate ( DataFolder df, String name ) throws IOException { FileObject fo; if (name == null) { name = FileUtil.findFreeFileName( df.getPrimaryFile (), getPrimaryFile ().getName (), getPrimaryFile ().getExt () ); } fo = getPrimaryEntry().createFromTemplate (df.getPrimaryFile (), name); Iterator it = secondaryEntries().iterator(); while (it.hasNext ()) { ((Entry)it.next()).createFromTemplate (df.getPrimaryFile (), name); } try { return createMultiObject (fo); } catch (DataObjectExistsException ex) { return ex.getDataObject (); } }
String suffix = existInFolder(getPrimaryEntry().getFile(), df.getPrimaryFile ()); if (suffix == null) throw new org.openide.util.UserCancelException(); List backup = saveEntries(); getPrimaryEntry ().changeFile (getPrimaryEntry ().move (df.getPrimaryFile (), suffix)); synchronized ( synchObjectSecondary() ) { it = new ArrayList(getSecondary().entrySet ()).iterator(); synchronized ( synchObjectSecondary() ) { getSecondary().remove(objects[i]); getSecondary().putAll (add); firePropertyChangeLater (PROP_FILES, null, null); return getPrimaryEntry ().getFile (); } catch (IOException e) { restoreEntries(backup); throw e;
/** Save pairs Entry <-> Entry.getFile () in the list * @return list of saved pairs */ final List saveEntries() { synchronized ( synchObjectSecondary() ) { LinkedList ll = new LinkedList(); Iterator it = secondaryEntries ().iterator (); ll.add (new Pair(getPrimaryEntry ())); while (it.hasNext ()) { MultiDataObject.Entry en = (MultiDataObject.Entry)it.next (); ll.add (new Pair(en)); } return ll; } }
/** Copies primary and secondary files to new folder. * May ask for user confirmation before overwriting. * @param df the new folder * @return data object for the new primary * @throws IOException if there was a problem copying * @throws UserCancelException if the user cancelled the copy */ protected DataObject handleCopy (DataFolder df) throws IOException { FileObject fo; String suffix = existInFolder( getPrimaryEntry().getFile(), df.getPrimaryFile () ); if (suffix == null) throw new org.openide.util.UserCancelException(); Iterator it = secondaryEntries().iterator(); while (it.hasNext ()) { ((Entry)it.next()).copy (df.getPrimaryFile (), suffix); } //#33244 - copy primary file after the secondary ones fo = getPrimaryEntry ().copy (df.getPrimaryFile (), suffix); try { return createMultiObject (fo); } catch (DataObjectExistsException ex) { return ex.getDataObject (); } }
private void readObject (ObjectInputStream ois) throws IOException, ClassNotFoundException { ois.defaultReadObject (); try { DataObject obj = DataObject.find (file); if (obj instanceof MultiDataObject) { MultiDataObject m = (MultiDataObject)obj; if (file.equals (m.getPrimaryFile ())) { // primary entry entry = m.getPrimaryEntry (); } else { // secondary entry Entry e = (Entry)m.findSecondaryEntry (file); if (e == null) { throw new InvalidObjectException (obj.toString ()); } // remember the entry entry = e; } } } catch (DataObjectNotFoundException ex) { throw new InvalidObjectException (ex.getMessage ()); } }
/** Do not create a seconday entry. * * @param obj ignored * @param secondaryFile ignored * @return never returns * @exception UnsupportedOperationException because this loader supports only a primary file object */ protected MultiDataObject.Entry createSecondaryEntry (MultiDataObject obj, FileObject secondaryFile) { // Debug messages for #17014. Please remove, when the bug is fixed. StringBuffer buf = new StringBuffer("Error in data system. Please reopen the bug #17014 with the following message: "); //NOI18N buf.append("\n DataLoader:"); //NOI18N buf.append(getClass().getName()); buf.append("\n DataObject:"); //NOI18N buf.append(obj); buf.append("\n PrimaryEntry:"); //NOI18N buf.append(obj.getPrimaryEntry()); buf.append("\n PrimaryFile:"); //NOI18N buf.append(obj.getPrimaryFile()); buf.append("\n SecondaryFile:"); //NOI18N buf.append(secondaryFile); buf.append("\n"); throw new UnsupportedOperationException (buf.toString()); //NOI18N }
protected FileObject handleRename (String name) throws IOException { getPrimaryEntry ().changeFile (getPrimaryEntry().rename (name)); synchronized ( synchObjectSecondary() ) { it = new ArrayList(getSecondary().entrySet ()).iterator(); synchronized ( synchObjectSecondary() ) { getSecondary().remove(objects[i]); getSecondary().putAll (add); firePropertyChangeLater (PROP_FILES, null, null); return getPrimaryEntry ().getFile ();
protected void handleDelete() throws IOException { ArrayList toRemove = new ArrayList(); Iterator it; synchronized ( synchObjectSecondary() ) { it = new ArrayList(getSecondary().entrySet ()).iterator(); } while (it.hasNext ()) { Map.Entry e = (Map.Entry)it.next (); ((Entry)e.getValue ()).delete (); toRemove.add(e.getKey()); } synchronized ( synchObjectSecondary() ) { Object[] objects = toRemove.toArray(); for (int i = 0; i < objects.length; i++) getSecondary().remove(objects[i]); } getPrimaryEntry().delete(); }
@Override protected void handleDelete() throws IOException { super.handleDelete(); FieldTaskSavable existingSavable = getLookup().lookup(FieldTaskSavable.class); if (existingSavable != null) { existingSavable.destroy(); } } private static final Icon ICON = ImageUtilities.loadImageIcon("nl/cloudfarming/client/task/field/to_do_list_checked_1.png", true);
/** * Creates new object from template. Check to make sure the user * has entered a valid string. * * @param df Folder to create the template in * @param name New template name * @exception IOException */ @Override protected DataObject handleCreateFromTemplate(DataFolder df, String name) throws IOException { if ((name != null) && (!isValidName(name))) { throw new IOException(NbBundle.getMessage(SourceDataObject.class, "FMT_Not_Valid_FileName", name)); // NOI18N } return super.handleCreateFromTemplate(df, name); }
synchronized (getSecondary()) { if (fo == null) { if (fo.equals (getPrimaryFile ())) { return primary; Entry e = (Entry)getSecondary().get (fo); if (e != null) { return e; e = createSecondaryEntry (this, fo); addSecondaryEntry (e);
void notifyFileDeleted (FileEvent fe) { removeFile (fe.getFile ()); if (fe.getFile ().equals (getPrimaryFile ())) { try { MultiDataObject.this.markInvalid0 (); } catch (PropertyVetoException ex) { // silently ignore? ErrorManager.getDefault ().notify (ErrorManager.INFORMATIONAL, ex); } } }
@Override public String id(MultiDataObject obj) { return BinaryExecSupport.class.getName()+obj.getPrimaryFile().getPath(); }