//編集で値が変更された場合に呼ばれます public FileData ValueChanged(FileData orgFileData, string newValue) { //評価を更新します using (var connection = _db.GetConnection()) { FileDataDao.UpdateField(connection, orgFileData.id, "value", newValue); } orgFileData.value = StringUtils.ToInt(newValue); return(orgFileData); }
//編集で値が変更された場合に呼ばれます public FileData ValueChanged(FileData orgFileData, string newValue) { //タイトルを更新します using (var connection = _db.GetConnection()) { FileDataDao.UpdateField(connection, orgFileData.id, "title", newValue); } orgFileData.title = newValue; return(orgFileData); }
/// <summary> /// 編集で値が変更された場合に呼ばれます /// </summary> /// <param name="orgFileData"></param> /// <param name="newValue"></param> /// <returns></returns> public FileData ValueChanged(FileData orgFileData, string newValue) { if (FileUtils.IsDir(orgFileData.path)) { return(null); } //新旧の拡張子を取得します var oldExt = Path.GetExtension(orgFileData.path).Replace(".", ""); var newExt = newValue.Replace(".", ""); //入力値の先頭に「.」がある場合は削除する //変更がない場合は処理を抜けます if (oldExt.Equals(newExt)) { return(null); } var oldPath = orgFileData.path; var oldDirPath = Path.GetDirectoryName(oldPath); //フォルダのパス var oldFileName = Path.GetFileNameWithoutExtension(orgFileData.path); //拡張子を除いたファイル名 var newPath = FileUtils.AppendPath(oldDirPath, oldFileName + "." + newExt); //ファイル名の変更がない場合は処理を抜けます if (oldFileName.Equals(newValue)) { return(null); } //ファイル名を変更します try { if (FileUtils.IsFile(oldPath)) { //ファイルの場合 File.Move(oldPath, newPath); } else { //フォルダの場合 Directory.Move(oldPath, newPath); } } catch (Exception ex) { __.ShowErrorMsgBox(ex.Message); return(null); } //パスを更新します using (var connection = _db.GetConnection()) { FileDataDao.UpdateField(connection, orgFileData.id, "path", newPath); } orgFileData.path = newPath; return(orgFileData); }
/****************************************************************************** * * プラグイン用イベントハンドラー * ******************************************************************************/ /// <summary> /// ファイル名変更イベント /// </summary> /// <param name="param"></param> /// <param name="sender"></param> public void PluginEvent_FileNameChanged(EventParam param, object sender) { //変更前と変更後のパスを取得します var oldPath = ((FileNameChangedEventParam)param).OldPath; var newPath = ((FileNameChangedEventParam)param).NewPath; using (var connection = _db.GetConnection()) { var fileData = FileDataDao.GetData(connection, oldPath, "path"); if (fileData != null) { FileDataDao.UpdateField(connection, fileData.id, "path", newPath); } } }
/// <summary> /// ファイル情報テーブルからデータを取得します /// </summary> /// <param name="id"></param> public void LoadData(string id) { using (var connection = _db.GetConnection()) { var fileData = FileDataDao.GetData(connection, id); if (fileData != null) { fileData._tags = TagDataDao.GetTags(connection, fileData.id); //ファイルデータを入力欄に設定します SetFileData(fileData); } } //変更なしにします Modified = false; }
public FileInfo ValueChanged(FileInfo orgFile, string newValue) { //スレッドが動いている場合は、処理しない if (_thread != null && _thread.IsAlive == true) { return(orgFile); } var path = orgFile.FullName; using (var connection = _db.GetConnection()) { var data = FileDataDao.GetDataByPath(connection, orgFile.FullName); if (data == null) { //データがない場合 data = new FileData(); data.title = orgFile.Name; //ファイル名 data.value = StringUtils.ToInt(newValue, 0); //評価・重要度 data.path = path; //ファイルのフルパス data.size = FileUtils.IsFile(path) ? orgFile.Length : 0; //ファイルサイズ //ファイル種別 data.kind = 0; if (FileUtils.IsFile(path)) { data.kind = 1; } if (FileUtils.IsDir(path)) { data.kind = 2; } } else { //データがある場合 data.value = StringUtils.ToInt(newValue, 0); //評価・重要度 } //データを更新します FileDB.SaveData(connection, data); //キャッシュに反映します _cache[orgFile.FullName] = data.value.ToString(); } return(orgFile); }
/// <summary> /// 編集で値が変更された場合に呼ばれます /// </summary> /// <param name="orgFileData"></param> /// <param name="newValue"></param> /// <returns></returns> public FileData ValueChanged(FileData orgFileData, string newValue) { var oldPath = orgFileData.path; var oldDir = Path.GetDirectoryName(oldPath); var oldFileName = Path.GetFileName(oldPath); var newPath = FileUtils.AppendPath(oldDir, newValue); //ファイル名の変更がない場合は処理を抜けます if (oldFileName.Equals(newValue)) { return(null); } //ファイル名を変更します try { if (FileUtils.IsFile(oldPath)) { //ファイルの場合 File.Move(oldPath, newPath); } else { //フォルダの場合 Directory.Move(oldPath, newPath); } } catch (Exception ex) { __.ShowErrorMsgBox(ex.Message); return(null); } //パスを更新します using (var connection = _db.GetConnection()) { FileDataDao.UpdateField(connection, orgFileData.id, "path", newPath); } orgFileData.path = newPath; return(orgFileData); }
/// <summary> /// 評価を一括更新します /// </summary> private bool UpdateValue(IList <int> idList) { using (var connection = _db.GetConnection()) { //トランザクション開始 var transaction = connection.BeginTransaction(); try { foreach (var id in idList) { //評価を更新します FileDataDao.UpdateField(connection, id, "value", _value.ToString()); } //コミット transaction.Commit(); return(true); } catch (Exception ex) { //ロールバック transaction.Rollback(); MsgBoxUtils.ShowErrorMsgBox("更新に失敗しました。\n" + ex.Message); return(false); } } }
/// <summary> /// ファイルデータを検索して、結果を一覧で表示します /// </summary> public void ShowFileList() { //キーワードの検索モード(and, or, not)を取得します Enum.TryParse(cmbKeyword.SelectedItem.ToString(), true, out FileDataDao.SearchMode searchModeKeyword); //タグの検索モード(and, or, not)を取得します Enum.TryParse(cmbTag.SelectedItem.ToString(), true, out FileDataDao.SearchMode searchModeTag); //入力されたキーワードをスペースで分割してリストにします var keywordList = ListUtils.Split(" ", txtKeyword.Text.Replace(' ', ' ')); //入力されたタグをスペースで分割してリストにします var tagList = ListUtils.Split(" ", txtTag.Text.Replace(' ', ' ')); //検索結果の表示件数を取得します int limit = StringUtils.ToInt(txtDisplayCount.Text, 0); //データの件数を取得します int count = FileDataDao.GetDataListCount(_db.GetConnection(), cmbValueFrom.SelectedIndex, cmbValueTo.SelectedIndex, keywordList, tagList, searchModeTag, searchModeKeyword, chkFile.Checked, chkDir.Checked); //データを検索します var dataList = FileDataDao.GetDataList(_db.GetConnection(), cmbValueFrom.SelectedIndex, cmbValueTo.SelectedIndex, keywordList, tagList, searchModeTag, searchModeKeyword, chkFile.Checked, chkDir.Checked, limit); //列の初期化処理を実行します foreach (IFileListColumn column in _grid.Columns) { column.ShowFileListBefore(); } //行を全て削除します _grid.Rows.Clear(); //行にデータを追加します foreach (var data in dataList) { //行データの生成 var rowData = new object[_grid.ColumnCount]; //行を追加します var rowIndex = _grid.Rows.Add(rowData); //行データを設定します SetRowData(rowIndex, data); } //列の解放処理を実行します foreach (IFileListColumn column in _grid.Columns) { column.ShowFileListAfter(); } //グリッドにフォーカスを移動します _grid.Focus(); //カーソルを一番上に移動します if (_grid.RowCount > 0) { _grid.CurrentCell = _grid[0, 0]; } //検索結果の表示 lblResult.Text = "検索結果:" + count + "件"; }