/// <summary> /// Initializes a new instance of the <see cref="HistoryItem"/> class. /// </summary> /// <param name="file">The backing file.</param> /// <param name="historyCanvas">The history canvas.</param> /// <param name="currentImage">The current image.</param> public HistoryItem(string file, CanvasHistoryState historyCanvas, BitmapSource currentImage) { backingFile = file; state = HistoryItemState.Memory; chunk = new HistoryChunk(historyCanvas, currentImage); ToDisk(); }
/// <summary> /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// </summary> public void Dispose() { if (!disposed) { File.Delete(backingFile); chunk.Dispose(); state = HistoryItemState.Disposed; disposed = true; } }
/// <summary> /// Retrieves the HistoryChunk from disk. /// </summary> public void ToMemory() { if (state == HistoryItemState.Disk) { using (FileStream fs = new FileStream(backingFile, FileMode.Open, FileAccess.Read, FileShare.None)) { BinaryFormatter bf = new BinaryFormatter(); chunk = (HistoryChunk)bf.Deserialize(fs); state = HistoryItemState.Memory; } } }
/// <summary> /// Serializes the HistoryChunk to disk. /// </summary> public void ToDisk() { if (state == HistoryItemState.Memory) { using (FileStream fs = new FileStream(backingFile, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None)) { BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(fs, chunk); state = HistoryItemState.Disk; chunk.Dispose(); } } }
private void SetButtonsVisibility(HistoryItemHolder holder, HistoryItemState state) { switch (state) { case HistoryItemState.Url: holder.MoveFiles.Visibility = ViewStates.Gone; holder.OpenFile.Visibility = ViewStates.Gone; holder.BrowseFiles.Visibility = ViewStates.Gone; holder.OpenUrl.Visibility = ViewStates.Visible; holder.CopyToClipboard.Visibility = ViewStates.Visible; holder.Share.Visibility = ViewStates.Visible; break; case HistoryItemState.Text: holder.MoveFiles.Visibility = ViewStates.Gone; holder.OpenFile.Visibility = ViewStates.Gone; holder.BrowseFiles.Visibility = ViewStates.Gone; holder.OpenUrl.Visibility = ViewStates.Gone; holder.CopyToClipboard.Visibility = ViewStates.Visible; holder.Share.Visibility = ViewStates.Visible; break; case HistoryItemState.SingleFile: holder.MoveFiles.Visibility = ViewStates.Visible; holder.OpenFile.Visibility = ViewStates.Visible; holder.BrowseFiles.Visibility = ViewStates.Gone; holder.OpenUrl.Visibility = ViewStates.Gone; holder.CopyToClipboard.Visibility = ViewStates.Gone; holder.Share.Visibility = ViewStates.Visible; break; case HistoryItemState.MultipleFiles: holder.MoveFiles.Visibility = ViewStates.Visible; holder.OpenFile.Visibility = ViewStates.Gone; holder.BrowseFiles.Visibility = ViewStates.Visible; holder.OpenUrl.Visibility = ViewStates.Gone; holder.CopyToClipboard.Visibility = ViewStates.Gone; holder.Share.Visibility = ViewStates.Gone; break; default: holder.MoveFiles.Visibility = ViewStates.Gone; holder.OpenFile.Visibility = ViewStates.Gone; holder.BrowseFiles.Visibility = ViewStates.Gone; holder.OpenUrl.Visibility = ViewStates.Gone; holder.CopyToClipboard.Visibility = ViewStates.Gone; holder.Share.Visibility = ViewStates.Gone; break; } }
public BaseHistoryItem(string icon, string text, HistoryItemState state) { Icon = icon; Text = text; State = state; }
public BaseHistoryItem(string icon, string text, HistoryItemState state) { Icon = icon; Text = text; State = state; }